Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
F
freeswitch
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
张华
freeswitch
Commits
e744bf03
提交
e744bf03
authored
6月 23, 2013
作者:
Nathan Neulinger
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
improvements to skinny logging, table based message text ids
上级
a38ea77f
全部展开
显示空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
806 行增加
和
357 行删除
+806
-357
mod_skinny.2012.vcxproj
src/mod/endpoints/mod_skinny/mod_skinny.2012.vcxproj
+0
-1
mod_skinny.c
src/mod/endpoints/mod_skinny/mod_skinny.c
+30
-24
mod_skinny.h
src/mod/endpoints/mod_skinny/mod_skinny.h
+23
-0
mod_skinny_2008.vcproj
src/mod/endpoints/mod_skinny/mod_skinny_2008.vcproj
+0
-4
mod_skinny_2010.vcxproj
src/mod/endpoints/mod_skinny/mod_skinny_2010.vcxproj
+0
-1
skinny_labels.h
src/mod/endpoints/mod_skinny/skinny_labels.h
+0
-168
skinny_protocol.c
src/mod/endpoints/mod_skinny/skinny_protocol.c
+258
-62
skinny_protocol.h
src/mod/endpoints/mod_skinny/skinny_protocol.h
+118
-27
skinny_server.c
src/mod/endpoints/mod_skinny/skinny_server.c
+105
-69
skinny_tables.c
src/mod/endpoints/mod_skinny/skinny_tables.c
+140
-1
skinny_tables.h
src/mod/endpoints/mod_skinny/skinny_tables.h
+132
-0
没有找到文件。
src/mod/endpoints/mod_skinny/mod_skinny.2012.vcxproj
浏览文件 @
e744bf03
...
@@ -142,7 +142,6 @@
...
@@ -142,7 +142,6 @@
<ItemGroup>
<ItemGroup>
<ClInclude
Include=
"mod_skinny.h"
/>
<ClInclude
Include=
"mod_skinny.h"
/>
<ClInclude
Include=
"skinny_api.h"
/>
<ClInclude
Include=
"skinny_api.h"
/>
<ClInclude
Include=
"skinny_labels.h"
/>
<ClInclude
Include=
"skinny_protocol.h"
/>
<ClInclude
Include=
"skinny_protocol.h"
/>
<ClInclude
Include=
"skinny_server.h"
/>
<ClInclude
Include=
"skinny_server.h"
/>
<ClInclude
Include=
"skinny_tables.h"
/>
<ClInclude
Include=
"skinny_tables.h"
/>
...
...
src/mod/endpoints/mod_skinny/mod_skinny.c
浏览文件 @
e744bf03
...
@@ -34,7 +34,6 @@
...
@@ -34,7 +34,6 @@
#include "skinny_protocol.h"
#include "skinny_protocol.h"
#include "skinny_server.h"
#include "skinny_server.h"
#include "skinny_tables.h"
#include "skinny_tables.h"
#include "skinny_labels.h"
#include "skinny_api.h"
#include "skinny_api.h"
SWITCH_MODULE_LOAD_FUNCTION
(
mod_skinny_load
);
SWITCH_MODULE_LOAD_FUNCTION
(
mod_skinny_load
);
...
@@ -399,9 +398,10 @@ void skinny_line_perform_set_state(const char *file, const char *func, int line,
...
@@ -399,9 +398,10 @@ void skinny_line_perform_set_state(const char *file, const char *func, int line,
switch_event_add_header
(
event
,
SWITCH_STACK_BOTTOM
,
"Skinny-Call-State"
,
"%d"
,
call_state
);
switch_event_add_header
(
event
,
SWITCH_STACK_BOTTOM
,
"Skinny-Call-State"
,
"%d"
,
call_state
);
switch_event_fire
(
&
event
);
switch_event_fire
(
&
event
);
send_call_state
(
listener
,
call_state
,
line_instance
,
call_id
);
send_call_state
(
listener
,
call_state
,
line_instance
,
call_id
);
switch_log_printf
(
SWITCH_CHANNEL_ID_LOG
,
file
,
func
,
line
,
NULL
,
SWITCH_LOG_DEBUG
,
"Device %s:%d, Line %d, Call %d Change State to %s (%d)
\n
"
,
skinny_log_l_ffl
(
listener
,
file
,
func
,
line
,
SWITCH_LOG_DEBUG
,
listener
->
device_name
,
listener
->
device_instance
,
line_instance
,
call_id
,
"Line %d, Call %d Change State to %s (%d)
\n
"
,
line_instance
,
call_id
,
skinny_call_state2str
(
call_state
),
call_state
);
skinny_call_state2str
(
call_state
),
call_state
);
}
}
...
@@ -620,6 +620,7 @@ int channel_on_routing_callback(void *pArg, int argc, char **argv, char **column
...
@@ -620,6 +620,7 @@ int channel_on_routing_callback(void *pArg, int argc, char **argv, char **column
{
{
struct
channel_on_routing_helper
*
helper
=
pArg
;
struct
channel_on_routing_helper
*
helper
=
pArg
;
listener_t
*
listener
=
NULL
;
listener_t
*
listener
=
NULL
;
char
*
label
;
char
*
device_name
=
argv
[
0
];
char
*
device_name
=
argv
[
0
];
uint32_t
device_instance
=
atoi
(
argv
[
1
]);
uint32_t
device_instance
=
atoi
(
argv
[
1
]);
...
@@ -654,8 +655,11 @@ int channel_on_routing_callback(void *pArg, int argc, char **argv, char **column
...
@@ -654,8 +655,11 @@ int channel_on_routing_callback(void *pArg, int argc, char **argv, char **column
send_set_lamp
(
listener
,
SKINNY_BUTTON_LINE
,
line_instance
,
SKINNY_LAMP_ON
);
send_set_lamp
(
listener
,
SKINNY_BUTTON_LINE
,
line_instance
,
SKINNY_LAMP_ON
);
skinny_line_set_state
(
listener
,
line_instance
,
helper
->
tech_pvt
->
call_id
,
SKINNY_IN_USE_REMOTELY
);
skinny_line_set_state
(
listener
,
line_instance
,
helper
->
tech_pvt
->
call_id
,
SKINNY_IN_USE_REMOTELY
);
send_select_soft_keys
(
listener
,
line_instance
,
helper
->
tech_pvt
->
call_id
,
SKINNY_KEY_SET_IN_USE_HINT
,
0xffff
);
send_select_soft_keys
(
listener
,
line_instance
,
helper
->
tech_pvt
->
call_id
,
SKINNY_KEY_SET_IN_USE_HINT
,
0xffff
);
send_display_prompt_status
(
listener
,
0
,
SKINNY_DISP_IN_USE_REMOTE
,
line_instance
,
helper
->
tech_pvt
->
call_id
);
label
=
skinny_textid2raw
(
SKINNY_TEXTID_IN_USE_REMOTE
);
send_display_prompt_status
(
listener
,
0
,
label
,
line_instance
,
helper
->
tech_pvt
->
call_id
);
switch_safe_free
(
label
);
skinny_session_send_call_info
(
helper
->
tech_pvt
->
session
,
listener
,
line_instance
);
skinny_session_send_call_info
(
helper
->
tech_pvt
->
session
,
listener
,
line_instance
);
}
}
}
}
...
@@ -751,6 +755,7 @@ int channel_on_hangup_callback(void *pArg, int argc, char **argv, char **columnN
...
@@ -751,6 +755,7 @@ int channel_on_hangup_callback(void *pArg, int argc, char **argv, char **columnN
{
{
struct
channel_on_hangup_helper
*
helper
=
pArg
;
struct
channel_on_hangup_helper
*
helper
=
pArg
;
listener_t
*
listener
=
NULL
;
listener_t
*
listener
=
NULL
;
char
*
label
;
char
*
device_name
=
argv
[
0
];
char
*
device_name
=
argv
[
0
];
uint32_t
device_instance
=
atoi
(
argv
[
1
]);
uint32_t
device_instance
=
atoi
(
argv
[
1
]);
...
@@ -782,11 +787,15 @@ int channel_on_hangup_callback(void *pArg, int argc, char **argv, char **columnN
...
@@ -782,11 +787,15 @@ int channel_on_hangup_callback(void *pArg, int argc, char **argv, char **columnN
case
SWITCH_CAUSE_UNALLOCATED_NUMBER
:
case
SWITCH_CAUSE_UNALLOCATED_NUMBER
:
send_start_tone
(
listener
,
SKINNY_TONE_REORDER
,
0
,
line_instance
,
call_id
);
send_start_tone
(
listener
,
SKINNY_TONE_REORDER
,
0
,
line_instance
,
call_id
);
skinny_session_send_call_info
(
helper
->
tech_pvt
->
session
,
listener
,
line_instance
);
skinny_session_send_call_info
(
helper
->
tech_pvt
->
session
,
listener
,
line_instance
);
send_display_prompt_status
(
listener
,
0
,
SKINNY_DISP_UNKNOWN_NUMBER
,
line_instance
,
call_id
);
label
=
skinny_textid2raw
(
SKINNY_TEXTID_UNKNOWN_NUMBER
);
send_display_prompt_status
(
listener
,
0
,
label
,
line_instance
,
call_id
);
switch_safe_free
(
label
);
break
;
break
;
case
SWITCH_CAUSE_USER_BUSY
:
case
SWITCH_CAUSE_USER_BUSY
:
send_start_tone
(
listener
,
SKINNY_TONE_BUSYTONE
,
0
,
line_instance
,
call_id
);
send_start_tone
(
listener
,
SKINNY_TONE_BUSYTONE
,
0
,
line_instance
,
call_id
);
send_display_prompt_status
(
listener
,
0
,
SKINNY_DISP_BUSY
,
line_instance
,
call_id
);
label
=
skinny_textid2raw
(
SKINNY_TEXTID_BUSY
);
send_display_prompt_status
(
listener
,
0
,
label
,
line_instance
,
call_id
);
switch_safe_free
(
label
);
break
;
break
;
case
SWITCH_CAUSE_NORMAL_CLEARING
:
case
SWITCH_CAUSE_NORMAL_CLEARING
:
send_clear_prompt_status
(
listener
,
line_instance
,
call_id
);
send_clear_prompt_status
(
listener
,
line_instance
,
call_id
);
...
@@ -1431,11 +1440,7 @@ static void *SWITCH_THREAD_FUNC listener_run(switch_thread_t *thread, void *obj)
...
@@ -1431,11 +1440,7 @@ static void *SWITCH_THREAD_FUNC listener_run(switch_thread_t *thread, void *obj)
switch_socket_timeout_set
(
listener
->
sock
,
5000000
);
switch_socket_timeout_set
(
listener
->
sock
,
5000000
);
#endif
#endif
if
(
listener
->
profile
->
debug
>
0
)
{
if
(
listener
->
profile
->
debug
>
0
)
{
if
(
zstr
(
listener
->
remote_ip
))
{
skinny_log_l
(
listener
,
SWITCH_LOG_DEBUG
,
"Connection Open
\n
"
,
NULL
);
switch_log_printf
(
SWITCH_CHANNEL_LOG
,
SWITCH_LOG_DEBUG
,
"Connection Open
\n
"
);
}
else
{
switch_log_printf
(
SWITCH_CHANNEL_LOG
,
SWITCH_LOG_DEBUG
,
"Connection Open from %s:%d
\n
"
,
listener
->
remote_ip
,
listener
->
remote_port
);
}
}
}
switch_set_flag_locked
(
listener
,
LFLAG_RUNNING
);
switch_set_flag_locked
(
listener
,
LFLAG_RUNNING
);
...
@@ -1449,8 +1454,7 @@ static void *SWITCH_THREAD_FUNC listener_run(switch_thread_t *thread, void *obj)
...
@@ -1449,8 +1454,7 @@ static void *SWITCH_THREAD_FUNC listener_run(switch_thread_t *thread, void *obj)
if
(
status
!=
SWITCH_STATUS_SUCCESS
)
{
if
(
status
!=
SWITCH_STATUS_SUCCESS
)
{
switch
(
status
)
{
switch
(
status
)
{
case
SWITCH_STATUS_TIMEOUT
:
case
SWITCH_STATUS_TIMEOUT
:
switch_log_printf
(
SWITCH_CHANNEL_LOG
,
SWITCH_LOG_INFO
,
"Communication Time Out with %s:%d.
\n
"
,
skinny_log_l
(
listener
,
SWITCH_LOG_DEBUG
,
"Communication Time Out
\n
"
,
NULL
);
listener
->
remote_ip
,
listener
->
remote_port
);
if
(
listener
->
expire_time
<
switch_epoch_time_now
(
NULL
))
{
if
(
listener
->
expire_time
<
switch_epoch_time_now
(
NULL
))
{
switch_event_t
*
event
=
NULL
;
switch_event_t
*
event
=
NULL
;
...
@@ -1460,8 +1464,7 @@ static void *SWITCH_THREAD_FUNC listener_run(switch_thread_t *thread, void *obj)
...
@@ -1460,8 +1464,7 @@ static void *SWITCH_THREAD_FUNC listener_run(switch_thread_t *thread, void *obj)
}
}
break
;
break
;
default:
default:
switch_log_printf
(
SWITCH_CHANNEL_LOG
,
SWITCH_LOG_CRIT
,
"Communication Error with %s:%d.
\n
"
,
skinny_log_l
(
listener
,
SWITCH_LOG_DEBUG
,
"Communication Error
\n
"
,
NULL
);
listener
->
remote_ip
,
listener
->
remote_port
);
}
}
switch_clear_flag_locked
(
listener
,
LFLAG_RUNNING
);
switch_clear_flag_locked
(
listener
,
LFLAG_RUNNING
);
break
;
break
;
...
@@ -1484,8 +1487,7 @@ static void *SWITCH_THREAD_FUNC listener_run(switch_thread_t *thread, void *obj)
...
@@ -1484,8 +1487,7 @@ static void *SWITCH_THREAD_FUNC listener_run(switch_thread_t *thread, void *obj)
remove_listener
(
listener
);
remove_listener
(
listener
);
if
(
listener
->
profile
->
debug
>
0
)
{
if
(
listener
->
profile
->
debug
>
0
)
{
switch_log_printf
(
SWITCH_CHANNEL_LOG
,
SWITCH_LOG_DEBUG
,
"Communication Complete with %s:%d.
\n
"
,
skinny_log_l
(
listener
,
SWITCH_LOG_DEBUG
,
"Communication Complete
\n
"
,
NULL
);
listener
->
remote_ip
,
listener
->
remote_port
);
}
}
switch_thread_rwlock_wrlock
(
listener
->
rwlock
);
switch_thread_rwlock_wrlock
(
listener
->
rwlock
);
...
@@ -1498,8 +1500,7 @@ static void *SWITCH_THREAD_FUNC listener_run(switch_thread_t *thread, void *obj)
...
@@ -1498,8 +1500,7 @@ static void *SWITCH_THREAD_FUNC listener_run(switch_thread_t *thread, void *obj)
switch_thread_rwlock_unlock
(
listener
->
rwlock
);
switch_thread_rwlock_unlock
(
listener
->
rwlock
);
if
(
listener
->
profile
->
debug
>
0
)
{
if
(
listener
->
profile
->
debug
>
0
)
{
switch_log_printf
(
SWITCH_CHANNEL_LOG
,
SWITCH_LOG_DEBUG
,
"Communication Closed with %s:%d.
\n
"
,
skinny_log_l
(
listener
,
SWITCH_LOG_DEBUG
,
"Communication Closed
\n
"
,
NULL
);
listener
->
remote_ip
,
listener
->
remote_port
);
}
}
if
(
destroy_pool
==
0
)
{
if
(
destroy_pool
==
0
)
{
...
@@ -2009,8 +2010,7 @@ static void skinny_user_to_device_event_handler(switch_event_t *event)
...
@@ -2009,8 +2010,7 @@ static void skinny_user_to_device_event_handler(switch_event_t *event)
data
);
data
);
break
;
break
;
default:
default:
switch_log_printf
(
SWITCH_CHANNEL_LOG
,
SWITCH_LOG_WARNING
,
skinny_log_l
(
listener
,
SWITCH_LOG_WARNING
,
"Incorrect message type %s (%d).
\n
"
,
skinny_message_type2str
(
message_type
),
message_type
);
"Incorrect message type %s (%d).
\n
"
,
skinny_message_type2str
(
message_type
),
message_type
);
}
}
}
else
{
}
else
{
switch_log_printf
(
SWITCH_CHANNEL_LOG
,
SWITCH_LOG_WARNING
,
switch_log_printf
(
SWITCH_CHANNEL_LOG
,
SWITCH_LOG_WARNING
,
...
@@ -2102,8 +2102,13 @@ int skinny_message_waiting_event_handler_callback(void *pArg, int argc, char **a
...
@@ -2102,8 +2102,13 @@ int skinny_message_waiting_event_handler_callback(void *pArg, int argc, char **a
if
(
listener
)
{
if
(
listener
)
{
if
(
helper
->
yn
==
SWITCH_TRUE
)
{
if
(
helper
->
yn
==
SWITCH_TRUE
)
{
char
buffer
[
32
];
char
buffer
[
32
];
char
*
label
;
send_set_lamp
(
listener
,
SKINNY_BUTTON_VOICEMAIL
,
0
,
SKINNY_LAMP_ON
);
send_set_lamp
(
listener
,
SKINNY_BUTTON_VOICEMAIL
,
0
,
SKINNY_LAMP_ON
);
sprintf
(
buffer
,
"%s: (%d/%d urgents)"
,
SKINNY_DISP_YOU_HAVE_VOICEMAIL
,
helper
->
total_new_messages
,
helper
->
total_new_urgent_messages
);
label
=
skinny_textid2raw
(
SKINNY_TEXTID_YOU_HAVE_VOICEMAIL
);
sprintf
(
buffer
,
"%s: (%d/%d urgents)"
,
label
,
helper
->
total_new_messages
,
helper
->
total_new_urgent_messages
);
switch_safe_free
(
label
);
send_display_pri_notify
(
listener
,
5
,
10
,
buffer
);
send_display_pri_notify
(
listener
,
5
,
10
,
buffer
);
}
else
{
}
else
{
send_set_lamp
(
listener
,
SKINNY_BUTTON_VOICEMAIL
,
0
,
SKINNY_LAMP_OFF
);
send_set_lamp
(
listener
,
SKINNY_BUTTON_VOICEMAIL
,
0
,
SKINNY_LAMP_OFF
);
...
@@ -2206,6 +2211,7 @@ static void skinny_trap_event_handler(switch_event_t *event)
...
@@ -2206,6 +2211,7 @@ static void skinny_trap_event_handler(switch_event_t *event)
}
}
}
}
/*****************************************************************************/
/*****************************************************************************/
SWITCH_MODULE_LOAD_FUNCTION
(
mod_skinny_load
)
SWITCH_MODULE_LOAD_FUNCTION
(
mod_skinny_load
)
{
{
...
...
src/mod/endpoints/mod_skinny/mod_skinny.h
浏览文件 @
e744bf03
...
@@ -35,6 +35,24 @@
...
@@ -35,6 +35,24 @@
#include <switch.h>
#include <switch.h>
/*****************************************************************************/
/* LOGGING FUNCTIONS */
/*****************************************************************************/
#define skinny_undef_str(x) (zstr(x) ? "_undef_" : x)
#define skinny_log_l(listener, level, _fmt, ...) switch_log_printf(SWITCH_CHANNEL_LOG, level, \
"[%s:%d @ %s:%d] " _fmt, skinny_undef_str(listener->device_name), listener->device_instance, skinny_undef_str(listener->remote_ip), \
listener->remote_port, __VA_ARGS__)
#define skinny_log_l_ffl(listener, file, func, line, level, _fmt, ...) switch_log_printf( \
SWITCH_CHANNEL_ID_LOG, file, func, line, NULL, level, \
"[%s:%d @ %s:%d] " _fmt, skinny_undef_str(listener->device_name), listener->device_instance, skinny_undef_str(listener->remote_ip), \
listener->remote_port, __VA_ARGS__)
#define skinny_log_ls(listener, session, level, _fmt, ...) switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), level, \
"[%s:%d @ %s:%d] " _fmt, skinny_undef_str(listener->device_name), listener->device_instance, skinny_undef_str(listener->remote_ip), \
listener->remote_port, __VA_ARGS__)
/*****************************************************************************/
/*****************************************************************************/
/* MODULE TYPES */
/* MODULE TYPES */
/*****************************************************************************/
/*****************************************************************************/
...
@@ -274,6 +292,11 @@ switch_status_t channel_kill_channel(switch_core_session_t *session, int sig);
...
@@ -274,6 +292,11 @@ switch_status_t channel_kill_channel(switch_core_session_t *session, int sig);
/*****************************************************************************/
/*****************************************************************************/
switch_endpoint_interface_t
*
skinny_get_endpoint_interface
();
switch_endpoint_interface_t
*
skinny_get_endpoint_interface
();
/*****************************************************************************/
/* MODULE FUNCTIONS */
/*****************************************************************************/
#define skinny_textid2raw(label) (label > 0 ? switch_mprintf("\200%c", label) : switch_mprintf(""))
#endif
/* _MOD_SKINNY_H */
#endif
/* _MOD_SKINNY_H */
/* For Emacs:
/* For Emacs:
...
...
src/mod/endpoints/mod_skinny/mod_skinny_2008.vcproj
浏览文件 @
e744bf03
...
@@ -311,10 +311,6 @@
...
@@ -311,10 +311,6 @@
RelativePath=
".\skinny_api.h"
RelativePath=
".\skinny_api.h"
>
>
</File>
</File>
<File
RelativePath=
".\skinny_labels.h"
>
</File>
<File
<File
RelativePath=
".\skinny_protocol.c"
RelativePath=
".\skinny_protocol.c"
>
>
...
...
src/mod/endpoints/mod_skinny/mod_skinny_2010.vcxproj
浏览文件 @
e744bf03
...
@@ -138,7 +138,6 @@
...
@@ -138,7 +138,6 @@
<ItemGroup>
<ItemGroup>
<ClInclude
Include=
"mod_skinny.h"
/>
<ClInclude
Include=
"mod_skinny.h"
/>
<ClInclude
Include=
"skinny_api.h"
/>
<ClInclude
Include=
"skinny_api.h"
/>
<ClInclude
Include=
"skinny_labels.h"
/>
<ClInclude
Include=
"skinny_protocol.h"
/>
<ClInclude
Include=
"skinny_protocol.h"
/>
<ClInclude
Include=
"skinny_server.h"
/>
<ClInclude
Include=
"skinny_server.h"
/>
<ClInclude
Include=
"skinny_tables.h"
/>
<ClInclude
Include=
"skinny_tables.h"
/>
...
...
src/mod/endpoints/mod_skinny/skinny_labels.h
deleted
100644 → 0
浏览文件 @
a38ea77f
/*
* FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
* Copyright (C) 2010, Mathieu Parent <math.parent@gmail.com>
*
* Version: MPL 1.1
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* The Original Code is FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
*
* The Initial Developer of the Original Code is
* Mathieu Parent <math.parent@gmail.com>
* Portions created by the Initial Developer are Copyright (C)
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
*
* Mathieu Parent <math.parent@gmail.com>
*
* Based on chan-sccp-b (file src/sccp_labels.h)
*
* skinny_labels.h -- Skinny Call Control Protocol (SCCP) Endpoint Module
*
*/
#ifndef _SKINNY_LABELS_H
#define _SKINNY_LABELS_H
#define SKINNY_DISP_EMPTY ""
#define SKINNY_DISP_REDIAL "\200\1"
#define SKINNY_DISP_NEWCALL "\200\2"
#define SKINNY_DISP_HOLD "\200\3"
#define SKINNY_DISP_TRANSFER "\200\4"
#define SKINNY_DISP_CFWDALL "\200\5"
#define SKINNY_DISP_CFWDBUSY "\200\6"
#define SKINNY_DISP_CFWDNOANSWER "\200\7"
#define SKINNY_DISP_BACKSPACE "\200\10"
#define SKINNY_DISP_ENDCALL "\200\11"
#define SKINNY_DISP_RESUME "\200\12"
#define SKINNY_DISP_ANSWER "\200\13"
#define SKINNY_DISP_INFO "\200\14"
#define SKINNY_DISP_CONF "\200\15"
#define SKINNY_DISP_PARK "\200\16"
#define SKINNY_DISP_JOIN "\200\17"
#define SKINNY_DISP_MEETME "\200\20"
#define SKINNY_DISP_CALLPICKUP "\200\21"
#define SKINNY_DISP_GRPCALLPICKUP "\200\22"
#define SKINNY_DISP_YOUR_CURRENT_OPTIONS "\200\23"
#define SKINNY_DISP_OFF_HOOK "\200\24"
#define SKINNY_DISP_ON_HOOK "\200\25"
#define SKINNY_DISP_RING_OUT "\200\26"
#define SKINNY_DISP_FROM "\200\27"
#define SKINNY_DISP_CONNECTED "\200\30"
#define SKINNY_DISP_BUSY "\200\31"
#define SKINNY_DISP_LINE_IN_USE "\200\32"
#define SKINNY_DISP_CALL_WAITING "\200\33"
#define SKINNY_DISP_CALL_TRANSFER "\200\34"
#define SKINNY_DISP_CALL_PARK "\200\35"
#define SKINNY_DISP_CALL_PROCEED "\200\36"
#define SKINNY_DISP_IN_USE_REMOTE "\200\37"
#define SKINNY_DISP_ENTER_NUMBER "\200\40"
#define SKINNY_DISP_CALL_PARK_AT "\200\41"
#define SKINNY_DISP_PRIMARY_ONLY "\200\42"
#define SKINNY_DISP_TEMP_FAIL "\200\43"
#define SKINNY_DISP_YOU_HAVE_VOICEMAIL "\200\44"
#define SKINNY_DISP_FORWARDED_TO "\200\45"
#define SKINNY_DISP_CAN_NOT_COMPLETE_CONFERENCE "\200\46"
#define SKINNY_DISP_NO_CONFERENCE_BRIDGE "\200\47"
#define SKINNY_DISP_CAN_NOT_HOLD_PRIMARY_CONTROL "\200\50"
#define SKINNY_DISP_INVALID_CONFERENCE_PARTICIPANT "\200\51"
#define SKINNY_DISP_IN_CONFERENCE_ALREADY "\200\52"
#define SKINNY_DISP_NO_PARTICIPANT_INFO "\200\53"
#define SKINNY_DISP_EXCEED_MAXIMUM_PARTIES "\200\54"
#define SKINNY_DISP_KEY_IS_NOT_ACTIVE "\200\55"
#define SKINNY_DISP_ERROR_NO_LICENSE "\200\56"
#define SKINNY_DISP_ERROR_DBCONFIG "\200\57"
#define SKINNY_DISP_ERROR_DATABASE "\200\60"
#define SKINNY_DISP_ERROR_PASS_LIMIT "\200\61"
#define SKINNY_DISP_ERROR_UNKNOWN "\200\62"
#define SKINNY_DISP_ERROR_MISMATCH "\200\63"
#define SKINNY_DISP_CONFERENCE "\200\64"
#define SKINNY_DISP_PARK_NUMBER "\200\65"
#define SKINNY_DISP_PRIVATE "\200\66"
#define SKINNY_DISP_NOT_ENOUGH_BANDWIDTH "\200\67"
#define SKINNY_DISP_UNKNOWN_NUMBER "\200\70"
#define SKINNY_DISP_RMLSTC "\200\71"
#define SKINNY_DISP_VOICEMAIL "\200\72"
#define SKINNY_DISP_IMMDIV "\200\73"
#define SKINNY_DISP_INTRCPT "\200\74"
#define SKINNY_DISP_SETWTCH "\200\75"
#define SKINNY_DISP_TRNSFVM "\200\76"
#define SKINNY_DISP_DND "\200\77"
#define SKINNY_DISP_DIVALL "\200\100"
#define SKINNY_DISP_CALLBACK "\200\101"
#define SKINNY_DISP_NETWORK_CONGESTION_REROUTING "\200\102"
#define SKINNY_DISP_BARGE "\200\103"
#define SKINNY_DISP_FAILED_TO_SETUP_BARGE "\200\104"
#define SKINNY_DISP_ANOTHER_BARGE_EXISTS "\200\105"
#define SKINNY_DISP_INCOMPATIBLE_DEVICE_TYPE "\200\106"
#define SKINNY_DISP_NO_PARK_NUMBER_AVAILABLE "\200\107"
#define SKINNY_DISP_CALLPARK_REVERSION "\200\110"
#define SKINNY_DISP_SERVICE_IS_NOT_ACTIVE "\200\111"
#define SKINNY_DISP_HIGH_TRAFFIC_TRY_AGAIN_LATER "\200\112"
#define SKINNY_DISP_QRT "\200\113"
#define SKINNY_DISP_MCID "\200\114"
#define SKINNY_DISP_DIRTRFR "\200\115"
#define SKINNY_DISP_SELECT "\200\116"
#define SKINNY_DISP_CONFLIST "\200\117"
#define SKINNY_DISP_IDIVERT "\200\120"
#define SKINNY_DISP_CBARGE "\200\121"
#define SKINNY_DISP_CAN_NOT_COMPLETE_TRANSFER "\200\122"
#define SKINNY_DISP_CAN_NOT_JOIN_CALLS "\200\123"
#define SKINNY_DISP_MCID_SUCCESSFUL "\200\124"
#define SKINNY_DISP_NUMBER_NOT_CONFIGURED "\200\125"
#define SKINNY_DISP_SECURITY_ERROR "\200\126"
#define SKINNY_DISP_VIDEO_BANDWIDTH_UNAVAILABLE "\200\127"
#define SKINNY_DISP_VIDMODE "\200\130"
#define SKINNY_DISP_MAX_CALL_DURATION_TIMEOUT "\200\131"
#define SKINNY_DISP_MAX_HOLD_DURATION_TIMEOUT "\200\132"
#define SKINNY_DISP_OPICKUP "\200\133"
#define SKINNY_DISP_EXTERNAL_TRANSFER_RESTRICTED "\200\141"
#define SKINNY_DISP_MAC_ADDRESS "\200\145"
#define SKINNY_DISP_HOST_NAME "\200\146"
#define SKINNY_DISP_DOMAIN_NAME "\200\147"
#define SKINNY_DISP_IP_ADDRESS "\200\150"
#define SKINNY_DISP_SUBNET_MASK "\200\151"
#define SKINNY_DISP_TFTP_SERVER_1 "\200\152"
#define SKINNY_DISP_DEFAULT_ROUTER_1 "\200\153"
#define SKINNY_DISP_DEFAULT_ROUTER_2 "\200\154"
#define SKINNY_DISP_DEFAULT_ROUTER_3 "\200\155"
#define SKINNY_DISP_DEFAULT_ROUTER_4 "\200\156"
#define SKINNY_DISP_DEFAULT_ROUTER_5 "\200\157"
#define SKINNY_DISP_DNS_SERVER_1 "\200\160"
#define SKINNY_DISP_DNS_SERVER_2 "\200\161"
#define SKINNY_DISP_DNS_SERVER_3 "\200\162"
#define SKINNY_DISP_DNS_SERVER_4 "\200\163"
#define SKINNY_DISP_DNS_SERVER_5 "\200\164"
#define SKINNY_DISP_OPERATIONAL_VLAN_ID "\200\165"
#define SKINNY_DISP_ADMIN_VLAN_ID "\200\166"
#define SKINNY_DISP_CALL_MANAGER_1 "\200\167"
#define SKINNY_DISP_CALL_MANAGER_2 "\200\170"
#define SKINNY_DISP_CALL_MANAGER_3 "\200\171"
#define SKINNY_DISP_CALL_MANAGER_4 "\200\172"
#define SKINNY_DISP_CALL_MANAGER_5 "\200\173"
#define SKINNY_DISP_INFORMATION_URL "\200\174"
#define SKINNY_DISP_DIRECTORIES_URL "\200\175"
#define SKINNY_DISP_MESSAGES_URL "\200\176"
#define SKINNY_DISP_SERVICES_URL "\200\177"
#endif
/* _SKINNY_LABELS_H */
/* For Emacs:
* Local Variables:
* mode:c
* indent-tabs-mode:t
* tab-width:4
* c-basic-offset:4
* End:
* For VIM:
* vim:set softtabstop=4 shiftwidth=4 tabstop=4:
*/
src/mod/endpoints/mod_skinny/skinny_protocol.c
浏览文件 @
e744bf03
差异被折叠。
点击展开。
src/mod/endpoints/mod_skinny/skinny_protocol.h
浏览文件 @
e744bf03
差异被折叠。
点击展开。
src/mod/endpoints/mod_skinny/skinny_server.c
浏览文件 @
e744bf03
差异被折叠。
点击展开。
src/mod/endpoints/mod_skinny/skinny_tables.c
浏览文件 @
e744bf03
...
@@ -43,7 +43,7 @@ struct skinny_table SKINNY_MESSAGE_TYPES[] = {
...
@@ -43,7 +43,7 @@ struct skinny_table SKINNY_MESSAGE_TYPES[] = {
{
STIMULUS_MESSAGE
,
"StimulusMessage"
},
{
STIMULUS_MESSAGE
,
"StimulusMessage"
},
{
OFF_HOOK_MESSAGE
,
"OffHookMessage"
},
{
OFF_HOOK_MESSAGE
,
"OffHookMessage"
},
{
ON_HOOK_MESSAGE
,
"OnHookMessage"
},
{
ON_HOOK_MESSAGE
,
"OnHookMessage"
},
{
FORWARD_STAT_REQ_MESSAGE
,
"ForwardStatReqMessage"
},
{
FORWARD_STAT_REQ_MESSAGE
,
"ForwardStatReqMessage"
},
{
SPEED_DIAL_STAT_REQ_MESSAGE
,
"SpeedDialStatReqMessage"
},
{
SPEED_DIAL_STAT_REQ_MESSAGE
,
"SpeedDialStatReqMessage"
},
{
LINE_STAT_REQ_MESSAGE
,
"LineStatReqMessage"
},
{
LINE_STAT_REQ_MESSAGE
,
"LineStatReqMessage"
},
{
CONFIG_STAT_REQ_MESSAGE
,
"ConfigStatReqMessage"
},
{
CONFIG_STAT_REQ_MESSAGE
,
"ConfigStatReqMessage"
},
...
@@ -132,6 +132,19 @@ SKINNY_DECLARE_STR2ID(skinny_str2message_type, SKINNY_MESSAGE_TYPES, -1)
...
@@ -132,6 +132,19 @@ SKINNY_DECLARE_STR2ID(skinny_str2message_type, SKINNY_MESSAGE_TYPES, -1)
SKINNY_DECLARE_ID2STR
(
skinny_device_type2str
,
SKINNY_DEVICE_TYPES
,
"UnknownDeviceType"
)
SKINNY_DECLARE_ID2STR
(
skinny_device_type2str
,
SKINNY_DEVICE_TYPES
,
"UnknownDeviceType"
)
SKINNY_DECLARE_STR2ID
(
skinny_str2device_type
,
SKINNY_DEVICE_TYPES
,
-
1
)
SKINNY_DECLARE_STR2ID
(
skinny_str2device_type
,
SKINNY_DEVICE_TYPES
,
-
1
)
struct
skinny_table
SKINNY_TONS
[]
=
{
{
SKINNY_TONE_SILENCE
,
"Silence"
},
{
SKINNY_TONE_DIALTONE
,
"DialTone"
},
{
SKINNY_TONE_BUSYTONE
,
"BusyTone"
},
{
SKINNY_TONE_ALERT
,
"Alert"
},
{
SKINNY_TONE_REORDER
,
"Reorder"
},
{
SKINNY_TONE_CALLWAITTONE
,
"CallWaitTone"
},
{
SKINNY_TONE_NOTONE
,
"NoTone"
},
{
0
,
NULL
}
};
SKINNY_DECLARE_ID2STR
(
skinny_tone2str
,
SKINNY_TONS
,
"UnknownTone"
)
SKINNY_DECLARE_STR2ID
(
skinny_str2tone
,
SKINNY_TONS
,
-
1
)
struct
skinny_table
SKINNY_RING_TYPES
[]
=
{
struct
skinny_table
SKINNY_RING_TYPES
[]
=
{
{
SKINNY_RING_OFF
,
"RingOff"
},
{
SKINNY_RING_OFF
,
"RingOff"
},
{
SKINNY_RING_INSIDE
,
"RingInside"
},
{
SKINNY_RING_INSIDE
,
"RingInside"
},
...
@@ -275,6 +288,132 @@ SKINNY_DECLARE_STR2ID(skinny_str2accessory_type, SKINNY_ACCESSORY_TYPES, -1)
...
@@ -275,6 +288,132 @@ SKINNY_DECLARE_STR2ID(skinny_str2accessory_type, SKINNY_ACCESSORY_TYPES, -1)
SKINNY_DECLARE_ID2STR
(
skinny_accessory_state2str
,
SKINNY_ACCESSORY_STATES
,
"AccessoryStateUnknown"
)
SKINNY_DECLARE_ID2STR
(
skinny_accessory_state2str
,
SKINNY_ACCESSORY_STATES
,
"AccessoryStateUnknown"
)
SKINNY_DECLARE_STR2ID
(
skinny_str2accessory_state
,
SKINNY_ACCESSORY_STATES
,
-
1
)
SKINNY_DECLARE_STR2ID
(
skinny_str2accessory_state
,
SKINNY_ACCESSORY_STATES
,
-
1
)
struct
skinny_table
SKINNY_TEXTIDS
[]
=
{
{
SKINNY_TEXTID_EMPTY
,
"Empty"
},
{
SKINNY_TEXTID_REDIAL
,
"Redial"
},
{
SKINNY_TEXTID_NEWCALL
,
"Newcall"
},
{
SKINNY_TEXTID_HOLD
,
"Hold"
},
{
SKINNY_TEXTID_TRANSFER
,
"Transfer"
},
{
SKINNY_TEXTID_CFWDALL
,
"Cfwdall"
},
{
SKINNY_TEXTID_CFWDBUSY
,
"Cfwdbusy"
},
{
SKINNY_TEXTID_CFWDNOANSWER
,
"Cfwdnoanswer"
},
{
SKINNY_TEXTID_BACKSPACE
,
"Backspace"
},
{
SKINNY_TEXTID_ENDCALL
,
"Endcall"
},
{
SKINNY_TEXTID_RESUME
,
"Resume"
},
{
SKINNY_TEXTID_ANSWER
,
"Answer"
},
{
SKINNY_TEXTID_INFO
,
"Info"
},
{
SKINNY_TEXTID_CONF
,
"Conf"
},
{
SKINNY_TEXTID_PARK
,
"Park"
},
{
SKINNY_TEXTID_JOIN
,
"Join"
},
{
SKINNY_TEXTID_MEETME
,
"Meetme"
},
{
SKINNY_TEXTID_CALLPICKUP
,
"Callpickup"
},
{
SKINNY_TEXTID_GRPCALLPICKUP
,
"Grpcallpickup"
},
{
SKINNY_TEXTID_YOUR_CURRENT_OPTIONS
,
"Your Current Options"
},
{
SKINNY_TEXTID_OFF_HOOK
,
"Off Hook"
},
{
SKINNY_TEXTID_ON_HOOK
,
"On Hook"
},
{
SKINNY_TEXTID_RING_OUT
,
"Ring Out"
},
{
SKINNY_TEXTID_FROM
,
"From"
},
{
SKINNY_TEXTID_CONNECTED
,
"Connected"
},
{
SKINNY_TEXTID_BUSY
,
"Busy"
},
{
SKINNY_TEXTID_LINE_IN_USE
,
"Line In Use"
},
{
SKINNY_TEXTID_CALL_WAITING
,
"Call Waiting"
},
{
SKINNY_TEXTID_CALL_TRANSFER
,
"Call Transfer"
},
{
SKINNY_TEXTID_CALL_PARK
,
"Call Park"
},
{
SKINNY_TEXTID_CALL_PROCEED
,
"Call Proceed"
},
{
SKINNY_TEXTID_IN_USE_REMOTE
,
"In Use Remote"
},
{
SKINNY_TEXTID_ENTER_NUMBER
,
"Enter Number"
},
{
SKINNY_TEXTID_CALL_PARK_AT
,
"Call Park At"
},
{
SKINNY_TEXTID_PRIMARY_ONLY
,
"Primary Only"
},
{
SKINNY_TEXTID_TEMP_FAIL
,
"Temp Fail"
},
{
SKINNY_TEXTID_YOU_HAVE_VOICEMAIL
,
"You Have Voicemail"
},
{
SKINNY_TEXTID_FORWARDED_TO
,
"Forwarded To"
},
{
SKINNY_TEXTID_CAN_NOT_COMPLETE_CONFERENCE
,
"Can Not Complete Conference"
},
{
SKINNY_TEXTID_NO_CONFERENCE_BRIDGE
,
"No Conference Bridge"
},
{
SKINNY_TEXTID_CAN_NOT_HOLD_PRIMARY_CONTROL
,
"Can Not Hold Primary Control"
},
{
SKINNY_TEXTID_INVALID_CONFERENCE_PARTICIPANT
,
"Invalid Conference Participant"
},
{
SKINNY_TEXTID_IN_CONFERENCE_ALREADY
,
"In Conference Already"
},
{
SKINNY_TEXTID_NO_PARTICIPANT_INFO
,
"No Participant Info"
},
{
SKINNY_TEXTID_EXCEED_MAXIMUM_PARTIES
,
"Exceed Maximum Parties"
},
{
SKINNY_TEXTID_KEY_IS_NOT_ACTIVE
,
"Key Is Not Active"
},
{
SKINNY_TEXTID_ERROR_NO_LICENSE
,
"Error No License"
},
{
SKINNY_TEXTID_ERROR_DBCONFIG
,
"Error Dbconfig"
},
{
SKINNY_TEXTID_ERROR_DATABASE
,
"Error Database"
},
{
SKINNY_TEXTID_ERROR_PASS_LIMIT
,
"Error Pass Limit"
},
{
SKINNY_TEXTID_ERROR_UNKNOWN
,
"Error Unknown"
},
{
SKINNY_TEXTID_ERROR_MISMATCH
,
"Error Mismatch"
},
{
SKINNY_TEXTID_CONFERENCE
,
"Conference"
},
{
SKINNY_TEXTID_PARK_NUMBER
,
"Park Number"
},
{
SKINNY_TEXTID_PRIVATE
,
"Private"
},
{
SKINNY_TEXTID_NOT_ENOUGH_BANDWIDTH
,
"Not Enough Bandwidth"
},
{
SKINNY_TEXTID_UNKNOWN_NUMBER
,
"Unknown Number"
},
{
SKINNY_TEXTID_RMLSTC
,
"Rmlstc"
},
{
SKINNY_TEXTID_VOICEMAIL
,
"Voicemail"
},
{
SKINNY_TEXTID_IMMDIV
,
"Immdiv"
},
{
SKINNY_TEXTID_INTRCPT
,
"Intrcpt"
},
{
SKINNY_TEXTID_SETWTCH
,
"Setwtch"
},
{
SKINNY_TEXTID_TRNSFVM
,
"Trnsfvm"
},
{
SKINNY_TEXTID_DND
,
"Dnd"
},
{
SKINNY_TEXTID_DIVALL
,
"Divall"
},
{
SKINNY_TEXTID_CALLBACK
,
"Callback"
},
{
SKINNY_TEXTID_NETWORK_CONGESTION_REROUTING
,
"Network Congestion Rerouting"
},
{
SKINNY_TEXTID_BARGE
,
"Barge"
},
{
SKINNY_TEXTID_FAILED_TO_SETUP_BARGE
,
"Failed To Setup Barge"
},
{
SKINNY_TEXTID_ANOTHER_BARGE_EXISTS
,
"Another Barge Exists"
},
{
SKINNY_TEXTID_INCOMPATIBLE_DEVICE_TYPE
,
"Incompatible Device Type"
},
{
SKINNY_TEXTID_NO_PARK_NUMBER_AVAILABLE
,
"No Park Number Available"
},
{
SKINNY_TEXTID_CALLPARK_REVERSION
,
"Callpark Reversion"
},
{
SKINNY_TEXTID_SERVICE_IS_NOT_ACTIVE
,
"Service Is Not Active"
},
{
SKINNY_TEXTID_HIGH_TRAFFIC_TRY_AGAIN_LATER
,
"High Traffic Try Again Later"
},
{
SKINNY_TEXTID_QRT
,
"Qrt"
},
{
SKINNY_TEXTID_MCID
,
"Mcid"
},
{
SKINNY_TEXTID_DIRTRFR
,
"Dirtrfr"
},
{
SKINNY_TEXTID_SELECT
,
"Select"
},
{
SKINNY_TEXTID_CONFLIST
,
"Conflist"
},
{
SKINNY_TEXTID_IDIVERT
,
"Idivert"
},
{
SKINNY_TEXTID_CBARGE
,
"Cbarge"
},
{
SKINNY_TEXTID_CAN_NOT_COMPLETE_TRANSFER
,
"Can Not Complete Transfer"
},
{
SKINNY_TEXTID_CAN_NOT_JOIN_CALLS
,
"Can Not Join Calls"
},
{
SKINNY_TEXTID_MCID_SUCCESSFUL
,
"Mcid Successful"
},
{
SKINNY_TEXTID_NUMBER_NOT_CONFIGURED
,
"Number Not Configured"
},
{
SKINNY_TEXTID_SECURITY_ERROR
,
"Security Error"
},
{
SKINNY_TEXTID_VIDEO_BANDWIDTH_UNAVAILABLE
,
"Video Bandwidth Unavailable"
},
{
SKINNY_TEXTID_VIDMODE
,
"Vidmode"
},
{
SKINNY_TEXTID_MAX_CALL_DURATION_TIMEOUT
,
"Max Call Duration Timeout"
},
{
SKINNY_TEXTID_MAX_HOLD_DURATION_TIMEOUT
,
"Max Hold Duration Timeout"
},
{
SKINNY_TEXTID_OPICKUP
,
"Opickup"
},
{
SKINNY_TEXTID_EXTERNAL_TRANSFER_RESTRICTED
,
"External Transfer Restricted"
},
{
SKINNY_TEXTID_MAC_ADDRESS
,
"Mac Address"
},
{
SKINNY_TEXTID_HOST_NAME
,
"Host Name"
},
{
SKINNY_TEXTID_DOMAIN_NAME
,
"Domain Name"
},
{
SKINNY_TEXTID_IP_ADDRESS
,
"Ip Address"
},
{
SKINNY_TEXTID_SUBNET_MASK
,
"Subnet Mask"
},
{
SKINNY_TEXTID_TFTP_SERVER_1
,
"Tftp Server 1"
},
{
SKINNY_TEXTID_DEFAULT_ROUTER_1
,
"Default Router 1"
},
{
SKINNY_TEXTID_DEFAULT_ROUTER_2
,
"Default Router 2"
},
{
SKINNY_TEXTID_DEFAULT_ROUTER_3
,
"Default Router 3"
},
{
SKINNY_TEXTID_DEFAULT_ROUTER_4
,
"Default Router 4"
},
{
SKINNY_TEXTID_DEFAULT_ROUTER_5
,
"Default Router 5"
},
{
SKINNY_TEXTID_DNS_SERVER_1
,
"Dns Server 1"
},
{
SKINNY_TEXTID_DNS_SERVER_2
,
"Dns Server 2"
},
{
SKINNY_TEXTID_DNS_SERVER_3
,
"Dns Server 3"
},
{
SKINNY_TEXTID_DNS_SERVER_4
,
"Dns Server 4"
},
{
SKINNY_TEXTID_DNS_SERVER_5
,
"Dns Server 5"
},
{
SKINNY_TEXTID_OPERATIONAL_VLAN_ID
,
"Operational Vlan Id"
},
{
SKINNY_TEXTID_ADMIN_VLAN_ID
,
"Admin Vlan Id"
},
{
SKINNY_TEXTID_CALL_MANAGER_1
,
"Call Manager 1"
},
{
SKINNY_TEXTID_CALL_MANAGER_2
,
"Call Manager 2"
},
{
SKINNY_TEXTID_CALL_MANAGER_3
,
"Call Manager 3"
},
{
SKINNY_TEXTID_CALL_MANAGER_4
,
"Call Manager 4"
},
{
SKINNY_TEXTID_CALL_MANAGER_5
,
"Call Manager 5"
},
{
SKINNY_TEXTID_INFORMATION_URL
,
"Information Url"
},
{
SKINNY_TEXTID_DIRECTORIES_URL
,
"Directories Url"
},
{
SKINNY_TEXTID_MESSAGES_URL
,
"Messages Url"
},
{
SKINNY_TEXTID_SERVICES_URL
,
"Services Url"
},
{
0
,
NULL
}
};
SKINNY_DECLARE_ID2STR
(
skinny_textid2str
,
SKINNY_TEXTIDS
,
"Unknown"
)
SKINNY_DECLARE_STR2ID
(
skinny_str2textid
,
SKINNY_TEXTIDS
,
-
1
)
/* For Emacs:
/* For Emacs:
* Local Variables:
* Local Variables:
* mode:c
* mode:c
...
...
src/mod/endpoints/mod_skinny/skinny_tables.h
浏览文件 @
e744bf03
...
@@ -106,6 +106,10 @@ enum skinny_tone {
...
@@ -106,6 +106,10 @@ enum skinny_tone {
SKINNY_TONE_CALLWAITTONE
=
0x2D
,
SKINNY_TONE_CALLWAITTONE
=
0x2D
,
SKINNY_TONE_NOTONE
=
0x7F
,
SKINNY_TONE_NOTONE
=
0x7F
,
};
};
extern
struct
skinny_table
SKINNY_TONES
[
9
];
const
char
*
skinny_tone2str
(
uint32_t
id
);
uint32_t
skinny_str2tone
(
const
char
*
str
);
#define SKINNY_PUSH_TONES SKINNY_DECLARE_PUSH_MATCH(SKINNY_TONES)
enum
skinny_ring_type
{
enum
skinny_ring_type
{
SKINNY_RING_OFF
=
1
,
SKINNY_RING_OFF
=
1
,
...
@@ -269,6 +273,134 @@ const char *skinny_accessory_state2str(uint32_t id);
...
@@ -269,6 +273,134 @@ const char *skinny_accessory_state2str(uint32_t id);
uint32_t
skinny_str2accessory_state
(
const
char
*
str
);
uint32_t
skinny_str2accessory_state
(
const
char
*
str
);
#define SKINNY_PUSH_ACCESSORY_STATES SKINNY_DECLARE_PUSH_MATCH(SKINNY_ACCESSORY_STATES)
#define SKINNY_PUSH_ACCESSORY_STATES SKINNY_DECLARE_PUSH_MATCH(SKINNY_ACCESSORY_STATES)
enum
skinny_label
{
SKINNY_TEXTID_EMPTY
=
0
,
SKINNY_TEXTID_REDIAL
=
1
,
SKINNY_TEXTID_NEWCALL
=
2
,
SKINNY_TEXTID_HOLD
=
3
,
SKINNY_TEXTID_TRANSFER
=
4
,
SKINNY_TEXTID_CFWDALL
=
5
,
SKINNY_TEXTID_CFWDBUSY
=
6
,
SKINNY_TEXTID_CFWDNOANSWER
=
7
,
SKINNY_TEXTID_BACKSPACE
=
8
,
SKINNY_TEXTID_ENDCALL
=
9
,
SKINNY_TEXTID_RESUME
=
10
,
SKINNY_TEXTID_ANSWER
=
11
,
SKINNY_TEXTID_INFO
=
12
,
SKINNY_TEXTID_CONF
=
13
,
SKINNY_TEXTID_PARK
=
14
,
SKINNY_TEXTID_JOIN
=
15
,
SKINNY_TEXTID_MEETME
=
16
,
SKINNY_TEXTID_CALLPICKUP
=
17
,
SKINNY_TEXTID_GRPCALLPICKUP
=
18
,
SKINNY_TEXTID_YOUR_CURRENT_OPTIONS
=
19
,
SKINNY_TEXTID_OFF_HOOK
=
20
,
SKINNY_TEXTID_ON_HOOK
=
21
,
SKINNY_TEXTID_RING_OUT
=
22
,
SKINNY_TEXTID_FROM
=
23
,
SKINNY_TEXTID_CONNECTED
=
24
,
SKINNY_TEXTID_BUSY
=
25
,
SKINNY_TEXTID_LINE_IN_USE
=
26
,
SKINNY_TEXTID_CALL_WAITING
=
27
,
SKINNY_TEXTID_CALL_TRANSFER
=
28
,
SKINNY_TEXTID_CALL_PARK
=
29
,
SKINNY_TEXTID_CALL_PROCEED
=
30
,
SKINNY_TEXTID_IN_USE_REMOTE
=
31
,
SKINNY_TEXTID_ENTER_NUMBER
=
32
,
SKINNY_TEXTID_CALL_PARK_AT
=
33
,
SKINNY_TEXTID_PRIMARY_ONLY
=
34
,
SKINNY_TEXTID_TEMP_FAIL
=
35
,
SKINNY_TEXTID_YOU_HAVE_VOICEMAIL
=
36
,
SKINNY_TEXTID_FORWARDED_TO
=
37
,
SKINNY_TEXTID_CAN_NOT_COMPLETE_CONFERENCE
=
38
,
SKINNY_TEXTID_NO_CONFERENCE_BRIDGE
=
39
,
SKINNY_TEXTID_CAN_NOT_HOLD_PRIMARY_CONTROL
=
40
,
SKINNY_TEXTID_INVALID_CONFERENCE_PARTICIPANT
=
41
,
SKINNY_TEXTID_IN_CONFERENCE_ALREADY
=
42
,
SKINNY_TEXTID_NO_PARTICIPANT_INFO
=
43
,
SKINNY_TEXTID_EXCEED_MAXIMUM_PARTIES
=
44
,
SKINNY_TEXTID_KEY_IS_NOT_ACTIVE
=
45
,
SKINNY_TEXTID_ERROR_NO_LICENSE
=
46
,
SKINNY_TEXTID_ERROR_DBCONFIG
=
47
,
SKINNY_TEXTID_ERROR_DATABASE
=
48
,
SKINNY_TEXTID_ERROR_PASS_LIMIT
=
49
,
SKINNY_TEXTID_ERROR_UNKNOWN
=
50
,
SKINNY_TEXTID_ERROR_MISMATCH
=
51
,
SKINNY_TEXTID_CONFERENCE
=
52
,
SKINNY_TEXTID_PARK_NUMBER
=
53
,
SKINNY_TEXTID_PRIVATE
=
54
,
SKINNY_TEXTID_NOT_ENOUGH_BANDWIDTH
=
55
,
SKINNY_TEXTID_UNKNOWN_NUMBER
=
56
,
SKINNY_TEXTID_RMLSTC
=
57
,
SKINNY_TEXTID_VOICEMAIL
=
58
,
SKINNY_TEXTID_IMMDIV
=
59
,
SKINNY_TEXTID_INTRCPT
=
60
,
SKINNY_TEXTID_SETWTCH
=
61
,
SKINNY_TEXTID_TRNSFVM
=
62
,
SKINNY_TEXTID_DND
=
63
,
SKINNY_TEXTID_DIVALL
=
64
,
SKINNY_TEXTID_CALLBACK
=
65
,
SKINNY_TEXTID_NETWORK_CONGESTION_REROUTING
=
66
,
SKINNY_TEXTID_BARGE
=
67
,
SKINNY_TEXTID_FAILED_TO_SETUP_BARGE
=
68
,
SKINNY_TEXTID_ANOTHER_BARGE_EXISTS
=
69
,
SKINNY_TEXTID_INCOMPATIBLE_DEVICE_TYPE
=
70
,
SKINNY_TEXTID_NO_PARK_NUMBER_AVAILABLE
=
71
,
SKINNY_TEXTID_CALLPARK_REVERSION
=
72
,
SKINNY_TEXTID_SERVICE_IS_NOT_ACTIVE
=
73
,
SKINNY_TEXTID_HIGH_TRAFFIC_TRY_AGAIN_LATER
=
74
,
SKINNY_TEXTID_QRT
=
75
,
SKINNY_TEXTID_MCID
=
76
,
SKINNY_TEXTID_DIRTRFR
=
77
,
SKINNY_TEXTID_SELECT
=
78
,
SKINNY_TEXTID_CONFLIST
=
79
,
SKINNY_TEXTID_IDIVERT
=
80
,
SKINNY_TEXTID_CBARGE
=
81
,
SKINNY_TEXTID_CAN_NOT_COMPLETE_TRANSFER
=
82
,
SKINNY_TEXTID_CAN_NOT_JOIN_CALLS
=
83
,
SKINNY_TEXTID_MCID_SUCCESSFUL
=
84
,
SKINNY_TEXTID_NUMBER_NOT_CONFIGURED
=
85
,
SKINNY_TEXTID_SECURITY_ERROR
=
86
,
SKINNY_TEXTID_VIDEO_BANDWIDTH_UNAVAILABLE
=
87
,
SKINNY_TEXTID_VIDMODE
=
88
,
SKINNY_TEXTID_MAX_CALL_DURATION_TIMEOUT
=
89
,
SKINNY_TEXTID_MAX_HOLD_DURATION_TIMEOUT
=
90
,
SKINNY_TEXTID_OPICKUP
=
91
,
SKINNY_TEXTID_EXTERNAL_TRANSFER_RESTRICTED
=
97
,
SKINNY_TEXTID_MAC_ADDRESS
=
101
,
SKINNY_TEXTID_HOST_NAME
=
102
,
SKINNY_TEXTID_DOMAIN_NAME
=
103
,
SKINNY_TEXTID_IP_ADDRESS
=
104
,
SKINNY_TEXTID_SUBNET_MASK
=
105
,
SKINNY_TEXTID_TFTP_SERVER_1
=
106
,
SKINNY_TEXTID_DEFAULT_ROUTER_1
=
107
,
SKINNY_TEXTID_DEFAULT_ROUTER_2
=
108
,
SKINNY_TEXTID_DEFAULT_ROUTER_3
=
109
,
SKINNY_TEXTID_DEFAULT_ROUTER_4
=
110
,
SKINNY_TEXTID_DEFAULT_ROUTER_5
=
111
,
SKINNY_TEXTID_DNS_SERVER_1
=
112
,
SKINNY_TEXTID_DNS_SERVER_2
=
113
,
SKINNY_TEXTID_DNS_SERVER_3
=
114
,
SKINNY_TEXTID_DNS_SERVER_4
=
115
,
SKINNY_TEXTID_DNS_SERVER_5
=
116
,
SKINNY_TEXTID_OPERATIONAL_VLAN_ID
=
117
,
SKINNY_TEXTID_ADMIN_VLAN_ID
=
118
,
SKINNY_TEXTID_CALL_MANAGER_1
=
119
,
SKINNY_TEXTID_CALL_MANAGER_2
=
120
,
SKINNY_TEXTID_CALL_MANAGER_3
=
121
,
SKINNY_TEXTID_CALL_MANAGER_4
=
122
,
SKINNY_TEXTID_CALL_MANAGER_5
=
123
,
SKINNY_TEXTID_INFORMATION_URL
=
124
,
SKINNY_TEXTID_DIRECTORIES_URL
=
125
,
SKINNY_TEXTID_MESSAGES_URL
=
126
,
SKINNY_TEXTID_SERVICES_URL
=
127
};
extern
struct
skinny_table
SKINNY_TEXTIDS
[
128
];
const
char
*
skinny_textid2str
(
uint32_t
id
);
uint32_t
skinny_str2textid
(
const
char
*
str
);
#define SKINNY_PUSH_TEXTIDS SKINNY_DECLARE_PUSH_MATCH(SKINNY_TEXTIDS)
#endif
/* _SKINNY_TABLES_H */
#endif
/* _SKINNY_TABLES_H */
/* For Emacs:
/* For Emacs:
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论