Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
F
freeswitch
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
张华
freeswitch
Commits
7db1cdef
提交
7db1cdef
authored
7月 04, 2012
作者:
kapil
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Audit code commit
上级
32a7e006
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
346 行增加
和
11 行删除
+346
-11
media_gateway_cmd_handler.c
...d/endpoints/mod_media_gateway/media_gateway_cmd_handler.c
+278
-5
media_gateway_stack.h
src/mod/endpoints/mod_media_gateway/media_gateway_stack.h
+4
-2
media_gateway_utils.c
src/mod/endpoints/mod_media_gateway/media_gateway_utils.c
+64
-1
mod_media_gateway.c
src/mod/endpoints/mod_media_gateway/mod_media_gateway.c
+0
-3
没有找到文件。
src/mod/endpoints/mod_media_gateway/media_gateway_cmd_handler.c
浏览文件 @
7db1cdef
...
@@ -258,6 +258,14 @@ switch_status_t handle_mg_audit_cmd( SuId suId, MgMgcoCommand *auditReq)
...
@@ -258,6 +258,14 @@ switch_status_t handle_mg_audit_cmd( SuId suId, MgMgcoCommand *auditReq)
MgMgcoAuditItem
*
audit_item
;
MgMgcoAuditItem
*
audit_item
;
int
i
;
int
i
;
int
err_code
;
int
err_code
;
MgMgcoCommand
reply
;
MgMgcoAuditReply
*
adtRep
=
NULLP
;
U16
numOfParms
;
MgMgcoMediaDesc
*
media
;
MgMgcoCtxt
ctxt
;
switch_status_t
ret
;
memset
(
&
reply
,
0
,
sizeof
(
reply
));
audit
=
&
auditReq
->
u
.
mgCmdReq
[
0
]
->
cmd
.
u
.
aval
;
audit
=
&
auditReq
->
u
.
mgCmdReq
[
0
]
->
cmd
.
u
.
aval
;
...
@@ -269,8 +277,8 @@ switch_status_t handle_mg_audit_cmd( SuId suId, MgMgcoCommand *auditReq)
...
@@ -269,8 +277,8 @@ switch_status_t handle_mg_audit_cmd( SuId suId, MgMgcoCommand *auditReq)
audit_desc
=
&
audit
->
audit
;
audit_desc
=
&
audit
->
audit
;
if
((
NOTPRSNT
==
audit_desc
->
pres
.
pres
)
||
(
NOTPRSNT
==
audit_desc
->
num
.
pres
)){
if
((
NOTPRSNT
==
audit_desc
->
pres
.
pres
)
||
(
NOTPRSNT
==
audit_desc
->
num
.
pres
)){
switch_log_printf
(
SWITCH_CHANNEL_LOG_CLEAN
,
SWITCH_LOG_ERROR
,
"Audit Descriptor not present..
rejecting
\n
"
);
switch_log_printf
(
SWITCH_CHANNEL_LOG_CLEAN
,
SWITCH_LOG_ERROR
,
"Audit Descriptor not present..
Could be HeartBeat message
\n
"
);
return
SWITCH_STATUS_FALSE
;
return
mg_send_heartbeat_audit_rsp
(
suId
,
auditReq
)
;
}
}
/* dump AUDIT message information */
/* dump AUDIT message information */
...
@@ -283,6 +291,9 @@ switch_status_t handle_mg_audit_cmd( SuId suId, MgMgcoCommand *auditReq)
...
@@ -283,6 +291,9 @@ switch_status_t handle_mg_audit_cmd( SuId suId, MgMgcoCommand *auditReq)
term_list
=
mg_get_term_id_list
(
auditReq
);
term_list
=
mg_get_term_id_list
(
auditReq
);
termId
=
term_list
->
terms
[
0
];
termId
=
term_list
->
terms
[
0
];
/*********************************************************************************************************************/
/**************************** Validating Audit Request ***************************************************************/
/*********************************************************************************************************************/
/*-- Start with Context level checks --*/
/*-- Start with Context level checks --*/
/*-- CHOOSE Context not allowed --*/
/*-- CHOOSE Context not allowed --*/
if
((
NOTPRSNT
!=
ctxtId
->
type
.
pres
)
&&
if
((
NOTPRSNT
!=
ctxtId
->
type
.
pres
)
&&
...
@@ -322,7 +333,38 @@ switch_status_t handle_mg_audit_cmd( SuId suId, MgMgcoCommand *auditReq)
...
@@ -322,7 +333,38 @@ switch_status_t handle_mg_audit_cmd( SuId suId, MgMgcoCommand *auditReq)
goto
error
;
goto
error
;
}
}
/* validation done , now processing command */
/*********************************************************************************************************************/
/**************************** Preparing Response Structure ***********************************************************/
/*********************************************************************************************************************/
/*copy transaction-id*/
memcpy
(
&
reply
.
transId
,
&
auditReq
->
transId
,
sizeof
(
MgMgcoTransId
));
/*copy context-id*/
memcpy
(
&
reply
.
contextId
,
&
auditReq
->
contextId
,
sizeof
(
MgMgcoContextId
));
/*copy peer identifier */
memcpy
(
&
reply
.
peerId
,
&
auditReq
->
peerId
,
sizeof
(
TknU32
));
/*fill response structue */
if
(
SWITCH_STATUS_FALSE
==
(
ret
=
mg_stack_alloc_mem
((
Ptr
*
)
&
reply
.
u
.
mgCmdRsp
[
0
],
sizeof
(
MgMgcoCmdReply
)))){
return
ret
;
}
reply
.
u
.
mgCmdRsp
[
0
]
->
pres
.
pres
=
PRSNT_NODEF
;
reply
.
u
.
mgCmdRsp
[
0
]
->
type
.
pres
=
PRSNT_NODEF
;
reply
.
u
.
mgCmdRsp
[
0
]
->
type
.
val
=
MGT_AUDITVAL
;
adtRep
=
&
(
reply
.
u
.
mgCmdRsp
[
0
]
->
u
.
aval
);
adtRep
->
type
.
pres
=
PRSNT_NODEF
;
adtRep
->
type
.
val
=
MGT_TERMAUDIT
;
adtRep
->
u
.
other
.
pres
.
pres
=
PRSNT_NODEF
;
mgUtlAllocMgMgcoTermIdLst
(
&
adtRep
->
u
.
other
.
termIdLst
,
term_list
);
/* NOW for each requested AUDIT descriptor we need to add entry to adtRep->u.other.audit.parms list */
/*********************************************************************************************************************/
/**************************** Processing Audit Request Descriptors **************************************************/
/*********************************************************************************************************************/
for
(
i
=
0
;
i
<
audit_desc
->
num
.
val
;
i
++
)
{
for
(
i
=
0
;
i
<
audit_desc
->
num
.
val
;
i
++
)
{
...
@@ -342,6 +384,25 @@ switch_status_t handle_mg_audit_cmd( SuId suId, MgMgcoCommand *auditReq)
...
@@ -342,6 +384,25 @@ switch_status_t handle_mg_audit_cmd( SuId suId, MgMgcoCommand *auditReq)
case
MGT_MEDIADESC
:
case
MGT_MEDIADESC
:
{
{
switch_log_printf
(
SWITCH_CHANNEL_LOG_CLEAN
,
SWITCH_LOG_INFO
,
"Auditing MEDIA
\n
"
);
switch_log_printf
(
SWITCH_CHANNEL_LOG_CLEAN
,
SWITCH_LOG_INFO
,
"Auditing MEDIA
\n
"
);
/* Grow the list of reply parameters */
if
(
mgUtlGrowList
((
void
***
)
&
adtRep
->
u
.
other
.
audit
.
parms
,
sizeof
(
MgMgcoAudRetParm
),
&
adtRep
->
u
.
other
.
audit
.
num
,
&
reply
.
u
.
mgCmdRsp
[
0
]
->
memCp
)
!=
ROK
)
{
switch_log_printf
(
SWITCH_CHANNEL_LOG_CLEAN
,
SWITCH_LOG_ERROR
,
"Grow List failed
\n
"
);
return
SWITCH_STATUS_FALSE
;
}
numOfParms
=
adtRep
->
u
.
other
.
audit
.
num
.
val
;
adtRep
->
u
.
other
.
audit
.
parms
[
numOfParms
-
1
]
->
type
.
pres
=
PRSNT_NODEF
;
adtRep
->
u
.
other
.
audit
.
parms
[
numOfParms
-
1
]
->
type
.
val
=
MGT_MEDIADESC
;
media
=
get_default_media_desc
();
if
(
!
media
){
return
SWITCH_STATUS_FALSE
;
}
mgUtlCpyMgMgcoMediaDesc
(
&
adtRep
->
u
.
other
.
audit
.
parms
[
numOfParms
-
1
]
->
u
.
media
,
media
,
&
reply
.
u
.
mgCmdRsp
[
0
]
->
memCp
);
break
;
break
;
}
}
case
MGT_MODEMDESC
:
case
MGT_MODEMDESC
:
...
@@ -387,7 +448,22 @@ switch_status_t handle_mg_audit_cmd( SuId suId, MgMgcoCommand *auditReq)
...
@@ -387,7 +448,22 @@ switch_status_t handle_mg_audit_cmd( SuId suId, MgMgcoCommand *auditReq)
case
MGT_PKGSDESC
:
case
MGT_PKGSDESC
:
{
{
switch_log_printf
(
SWITCH_CHANNEL_LOG_CLEAN
,
SWITCH_LOG_INFO
,
"Auditing Packages
\n
"
);
switch_log_printf
(
SWITCH_CHANNEL_LOG_CLEAN
,
SWITCH_LOG_INFO
,
"Auditing Packages
\n
"
);
handle_pkg_audit
(
suId
,
auditReq
);
/* Grow the list of reply parameters */
if
(
mgUtlGrowList
((
void
***
)
&
adtRep
->
u
.
other
.
audit
.
parms
,
sizeof
(
MgMgcoAudRetParm
),
&
adtRep
->
u
.
other
.
audit
.
num
,
&
reply
.
u
.
mgCmdRsp
[
0
]
->
memCp
)
!=
ROK
)
{
switch_log_printf
(
SWITCH_CHANNEL_LOG_CLEAN
,
SWITCH_LOG_ERROR
,
"Grow List failed
\n
"
);
return
SWITCH_STATUS_FALSE
;
}
numOfParms
=
adtRep
->
u
.
other
.
audit
.
num
.
val
;
adtRep
->
u
.
other
.
audit
.
parms
[
numOfParms
-
1
]
->
type
.
pres
=
PRSNT_NODEF
;
adtRep
->
u
.
other
.
audit
.
parms
[
numOfParms
-
1
]
->
type
.
val
=
MGT_PKGSDESC
;
if
(
SWITCH_STATUS_FALSE
==
mg_build_pkg_desc
(
&
adtRep
->
u
.
other
.
audit
.
parms
[
numOfParms
-
1
]
->
u
.
pkgs
)){
return
SWITCH_STATUS_FALSE
;
}
break
;
break
;
}
}
case
MGT_INDAUD_TERMAUDDESC
:
case
MGT_INDAUD_TERMAUDDESC
:
...
@@ -405,6 +481,26 @@ switch_status_t handle_mg_audit_cmd( SuId suId, MgMgcoCommand *auditReq)
...
@@ -405,6 +481,26 @@ switch_status_t handle_mg_audit_cmd( SuId suId, MgMgcoCommand *auditReq)
}
/*if (NOTPRSNT != audit_item->auditItem.pres)*/
}
/*if (NOTPRSNT != audit_item->auditItem.pres)*/
}
/*for loop - audit_desc->num.val */
}
/*for loop - audit_desc->num.val */
/*********************************************************************************************************************/
/**************************** Send Audit Command Reply***************************************************************/
/*********************************************************************************************************************/
reply
.
cmdStatus
.
pres
=
PRSNT_NODEF
;
reply
.
cmdStatus
.
val
=
CH_CMD_STATUS_END_OF_CMD
;
reply
.
cmdType
.
pres
=
PRSNT_NODEF
;
reply
.
cmdType
.
val
=
CH_CMD_TYPE_RSP
;
/* send command reply */
sng_mgco_send_cmd
(
suId
,
&
reply
);
/* send indication to stack , so he can send response back to peer */
memcpy
(
&
ctxt
.
transId
,
&
auditReq
->
transId
,
sizeof
(
MgMgcoTransId
));
memcpy
(
&
ctxt
.
cntxtId
,
&
auditReq
->
contextId
,
sizeof
(
MgMgcoContextId
));
memcpy
(
&
ctxt
.
peerId
,
&
auditReq
->
peerId
,
sizeof
(
TknU32
));
ctxt
.
cmdStatus
.
pres
=
PRSNT_NODEF
;
ctxt
.
cmdStatus
.
val
=
CH_CMD_STATUS_END_OF_AXN
;
sng_mgco_send_axn_req
(
suId
,
&
ctxt
);
/***********************************************************************************************************************************/
return
SWITCH_STATUS_SUCCESS
;
return
SWITCH_STATUS_SUCCESS
;
error:
error:
...
@@ -417,6 +513,181 @@ error:
...
@@ -417,6 +513,181 @@ error:
return
SWITCH_STATUS_FALSE
;
return
SWITCH_STATUS_FALSE
;
}
}
/*****************************************************************************************************************************/
switch_status_t
mg_send_heartbeat_audit_rsp
(
SuId
suId
,
MgMgcoCommand
*
auditReq
)
{
MgMgcoCtxt
ctxt
;
switch_status_t
ret
;
MgMgcoCommand
reply
;
MgMgcoTermIdLst
*
term_list
;
MgMgcoTermId
*
termId
;
MgMgcoSubAudReq
*
audit
;
MgMgcoAuditReply
*
adtRep
=
NULLP
;
memset
(
&
reply
,
0
,
sizeof
(
reply
));
audit
=
&
auditReq
->
u
.
mgCmdReq
[
0
]
->
cmd
.
u
.
aval
;
if
(
NOTPRSNT
==
audit
->
pres
.
pres
){
switch_log_printf
(
SWITCH_CHANNEL_LOG_CLEAN
,
SWITCH_LOG_ERROR
,
"Audit structure not present..rejecting
\n
"
);
return
SWITCH_STATUS_FALSE
;
}
/*-- Get termination list --*/
term_list
=
mg_get_term_id_list
(
auditReq
);
termId
=
term_list
->
terms
[
0
];
/*copy transaction-id*/
memcpy
(
&
reply
.
transId
,
&
auditReq
->
transId
,
sizeof
(
MgMgcoTransId
));
/*copy context-id*/
memcpy
(
&
reply
.
contextId
,
&
auditReq
->
contextId
,
sizeof
(
MgMgcoContextId
));
/*copy peer identifier */
memcpy
(
&
reply
.
peerId
,
&
auditReq
->
peerId
,
sizeof
(
TknU32
));
/*fill response structue */
if
(
SWITCH_STATUS_FALSE
==
(
ret
=
mg_stack_alloc_mem
((
Ptr
*
)
&
reply
.
u
.
mgCmdRsp
[
0
],
sizeof
(
MgMgcoCmdReply
)))){
return
ret
;
}
reply
.
u
.
mgCmdRsp
[
0
]
->
pres
.
pres
=
PRSNT_NODEF
;
reply
.
u
.
mgCmdRsp
[
0
]
->
type
.
pres
=
PRSNT_NODEF
;
reply
.
u
.
mgCmdRsp
[
0
]
->
type
.
val
=
MGT_AUDITVAL
;
adtRep
=
&
(
reply
.
u
.
mgCmdRsp
[
0
]
->
u
.
aval
);
adtRep
->
type
.
pres
=
PRSNT_NODEF
;
adtRep
->
type
.
val
=
MGT_TERMAUDIT
;
adtRep
->
u
.
other
.
pres
.
pres
=
PRSNT_NODEF
;
adtRep
->
u
.
other
.
audit
.
num
.
pres
=
0x00
;
mgUtlAllocMgMgcoTermIdLst
(
&
adtRep
->
u
.
other
.
termIdLst
,
term_list
);
/* We will always send one command at a time..*/
reply
.
cmdStatus
.
pres
=
PRSNT_NODEF
;
reply
.
cmdStatus
.
val
=
CH_CMD_STATUS_END_OF_CMD
;
reply
.
cmdType
.
pres
=
PRSNT_NODEF
;
reply
.
cmdType
.
val
=
CH_CMD_TYPE_RSP
;
ret
=
sng_mgco_send_cmd
(
suId
,
&
reply
);
/*will send once all audit done*/
memcpy
(
&
ctxt
.
transId
,
&
auditReq
->
transId
,
sizeof
(
MgMgcoTransId
));
memcpy
(
&
ctxt
.
cntxtId
,
&
auditReq
->
contextId
,
sizeof
(
MgMgcoContextId
));
memcpy
(
&
ctxt
.
peerId
,
&
auditReq
->
peerId
,
sizeof
(
TknU32
));
ctxt
.
cmdStatus
.
pres
=
PRSNT_NODEF
;
ctxt
.
cmdStatus
.
val
=
CH_CMD_STATUS_END_OF_AXN
;
ret
=
sng_mgco_send_axn_req
(
suId
,
&
ctxt
);
return
ret
;
}
/*****************************************************************************************************************************/
switch_status_t
handle_media_audit
(
SuId
suId
,
MgMgcoCommand
*
auditReq
)
{
switch_status_t
ret
;
MgMgcoCommand
reply
;
MgMgcoTermIdLst
*
term_list
;
MgMgcoTermId
*
termId
;
MgMgcoSubAudReq
*
audit
;
MgMgcoAuditDesc
*
audit_desc
;
MgMgcoAuditReply
*
adtRep
=
NULLP
;
U16
numOfParms
;
MgMgcoMediaDesc
*
media
;
memset
(
&
reply
,
0
,
sizeof
(
reply
));
audit
=
&
auditReq
->
u
.
mgCmdReq
[
0
]
->
cmd
.
u
.
aval
;
if
(
NOTPRSNT
==
audit
->
pres
.
pres
){
switch_log_printf
(
SWITCH_CHANNEL_LOG_CLEAN
,
SWITCH_LOG_ERROR
,
"Audit structure not present..rejecting
\n
"
);
return
SWITCH_STATUS_FALSE
;
}
audit_desc
=
&
audit
->
audit
;
if
((
NOTPRSNT
==
audit_desc
->
pres
.
pres
)
||
(
NOTPRSNT
==
audit_desc
->
num
.
pres
)){
switch_log_printf
(
SWITCH_CHANNEL_LOG_CLEAN
,
SWITCH_LOG_ERROR
,
"Audit Descriptor not present..rejecting
\n
"
);
return
SWITCH_STATUS_FALSE
;
}
/* dump AUDIT message information */
/*mgAccEvntPrntMgMgcoSubAudReq(auditReq,stdout);*/
/*-- Get termination list --*/
term_list
=
mg_get_term_id_list
(
auditReq
);
termId
=
term_list
->
terms
[
0
];
/*copy transaction-id*/
memcpy
(
&
reply
.
transId
,
&
auditReq
->
transId
,
sizeof
(
MgMgcoTransId
));
/*copy context-id*/
memcpy
(
&
reply
.
contextId
,
&
auditReq
->
contextId
,
sizeof
(
MgMgcoContextId
));
/*copy peer identifier */
memcpy
(
&
reply
.
peerId
,
&
auditReq
->
peerId
,
sizeof
(
TknU32
));
/*fill response structue */
if
(
SWITCH_STATUS_FALSE
==
(
ret
=
mg_stack_alloc_mem
((
Ptr
*
)
&
reply
.
u
.
mgCmdRsp
[
0
],
sizeof
(
MgMgcoCmdReply
)))){
return
ret
;
}
reply
.
u
.
mgCmdRsp
[
0
]
->
pres
.
pres
=
PRSNT_NODEF
;
reply
.
u
.
mgCmdRsp
[
0
]
->
type
.
pres
=
PRSNT_NODEF
;
reply
.
u
.
mgCmdRsp
[
0
]
->
type
.
val
=
MGT_AUDITVAL
;
adtRep
=
&
(
reply
.
u
.
mgCmdRsp
[
0
]
->
u
.
aval
);
adtRep
->
type
.
pres
=
PRSNT_NODEF
;
adtRep
->
type
.
val
=
MGT_TERMAUDIT
;
adtRep
->
u
.
other
.
pres
.
pres
=
PRSNT_NODEF
;
mgUtlAllocMgMgcoTermIdLst
(
&
adtRep
->
u
.
other
.
termIdLst
,
term_list
);
/* Grow the list of reply parameters */
if
(
mgUtlGrowList
((
void
***
)
&
adtRep
->
u
.
other
.
audit
.
parms
,
sizeof
(
MgMgcoAudRetParm
),
&
adtRep
->
u
.
other
.
audit
.
num
,
&
reply
.
u
.
mgCmdRsp
[
0
]
->
memCp
)
!=
ROK
)
{
switch_log_printf
(
SWITCH_CHANNEL_LOG_CLEAN
,
SWITCH_LOG_ERROR
,
"Grow List failed
\n
"
);
return
SWITCH_STATUS_FALSE
;
}
numOfParms
=
adtRep
->
u
.
other
.
audit
.
num
.
val
;
adtRep
->
u
.
other
.
audit
.
parms
[
numOfParms
-
1
]
->
type
.
pres
=
PRSNT_NODEF
;
adtRep
->
u
.
other
.
audit
.
parms
[
numOfParms
-
1
]
->
type
.
val
=
MGT_MEDIADESC
;
media
=
get_default_media_desc
();
if
(
!
media
){
return
SWITCH_STATUS_FALSE
;
}
mgUtlCpyMgMgcoMediaDesc
(
&
adtRep
->
u
.
other
.
audit
.
parms
[
numOfParms
-
1
]
->
u
.
media
,
media
,
&
reply
.
u
.
mgCmdRsp
[
0
]
->
memCp
);
/* We will always send one command at a time..*/
reply
.
cmdStatus
.
pres
=
PRSNT_NODEF
;
reply
.
cmdStatus
.
val
=
CH_CMD_STATUS_END_OF_CMD
;
reply
.
cmdType
.
pres
=
PRSNT_NODEF
;
reply
.
cmdType
.
val
=
CH_CMD_TYPE_RSP
;
ret
=
sng_mgco_send_cmd
(
suId
,
&
reply
);
#if 0
/*will send once all audit done*/
memcpy(&ctxt.transId,&auditReq->transId,sizeof(MgMgcoTransId));
memcpy(&ctxt.cntxtId, &auditReq->contextId,sizeof(MgMgcoContextId));
memcpy(&ctxt.peerId, &auditReq->peerId,sizeof(TknU32));
ctxt.cmdStatus.pres = PRSNT_NODEF;
ctxt.cmdStatus.val = CH_CMD_STATUS_END_OF_AXN;
ret = sng_mgco_send_axn_req(suId, &ctxt);
#endif
return
ret
;
}
/*****************************************************************************************************************************/
/*****************************************************************************************************************************/
switch_status_t
handle_pkg_audit
(
SuId
suId
,
MgMgcoCommand
*
auditReq
)
switch_status_t
handle_pkg_audit
(
SuId
suId
,
MgMgcoCommand
*
auditReq
)
{
{
...
@@ -428,7 +699,6 @@ switch_status_t handle_pkg_audit( SuId suId, MgMgcoCommand *auditReq)
...
@@ -428,7 +699,6 @@ switch_status_t handle_pkg_audit( SuId suId, MgMgcoCommand *auditReq)
MgMgcoAuditDesc
*
audit_desc
;
MgMgcoAuditDesc
*
audit_desc
;
MgMgcoAuditReply
*
adtRep
=
NULLP
;
MgMgcoAuditReply
*
adtRep
=
NULLP
;
U16
numOfParms
;
U16
numOfParms
;
MgMgcoCtxt
ctxt
;
memset
(
&
reply
,
0
,
sizeof
(
reply
));
memset
(
&
reply
,
0
,
sizeof
(
reply
));
audit
=
&
auditReq
->
u
.
mgCmdReq
[
0
]
->
cmd
.
u
.
aval
;
audit
=
&
auditReq
->
u
.
mgCmdReq
[
0
]
->
cmd
.
u
.
aval
;
...
@@ -503,12 +773,15 @@ switch_status_t handle_pkg_audit( SuId suId, MgMgcoCommand *auditReq)
...
@@ -503,12 +773,15 @@ switch_status_t handle_pkg_audit( SuId suId, MgMgcoCommand *auditReq)
ret
=
sng_mgco_send_cmd
(
suId
,
&
reply
);
ret
=
sng_mgco_send_cmd
(
suId
,
&
reply
);
#if 0
/*will send once all audit done*/
memcpy(&ctxt.transId,&auditReq->transId,sizeof(MgMgcoTransId));
memcpy(&ctxt.transId,&auditReq->transId,sizeof(MgMgcoTransId));
memcpy(&ctxt.cntxtId, &auditReq->contextId,sizeof(MgMgcoContextId));
memcpy(&ctxt.cntxtId, &auditReq->contextId,sizeof(MgMgcoContextId));
memcpy(&ctxt.peerId, &auditReq->peerId,sizeof(TknU32));
memcpy(&ctxt.peerId, &auditReq->peerId,sizeof(TknU32));
ctxt.cmdStatus.pres = PRSNT_NODEF;
ctxt.cmdStatus.pres = PRSNT_NODEF;
ctxt.cmdStatus.val = CH_CMD_STATUS_END_OF_AXN;
ctxt.cmdStatus.val = CH_CMD_STATUS_END_OF_AXN;
ret = sng_mgco_send_axn_req(suId, &ctxt);
ret = sng_mgco_send_axn_req(suId, &ctxt);
#endif
return
ret
;
return
ret
;
...
...
src/mod/endpoints/mod_media_gateway/media_gateway_stack.h
浏览文件 @
7db1cdef
...
@@ -121,9 +121,10 @@ switch_status_t mg_send_end_of_axn(SuId suId, MgMgcoTransId* transId, MgMgcoCont
...
@@ -121,9 +121,10 @@ switch_status_t mg_send_end_of_axn(SuId suId, MgMgcoTransId* transId, MgMgcoCont
void
mgco_print_sdp
(
CmSdpInfoSet
*
sdp
);
void
mgco_print_sdp
(
CmSdpInfoSet
*
sdp
);
void
mg_util_set_ctxt_string
(
MgStr
*
errTxt
,
MgMgcoContextId
*
ctxtId
);
void
mg_util_set_ctxt_string
(
MgStr
*
errTxt
,
MgMgcoContextId
*
ctxtId
);
switch_status_t
handle_mg_add_cmd
(
MgMgcoAmmReq
*
addReq
);
switch_status_t
handle_mg_add_cmd
(
MgMgcoAmmReq
*
addReq
);
switch_status_t
mg_stack_free_mem
(
MgMgcoMsg
*
msg
);
switch_status_t
mg_stack_free_mem
(
void
*
msg
);
switch_status_t
mg_stack_free_mem
(
MgMgcoMsg
*
msg
);
switch_status_t
mg_stack_alloc_mem
(
Ptr
*
_memPtr
,
Size
_memSize
);
switch_status_t
mg_stack_alloc_mem
(
Ptr
*
_memPtr
,
Size
_memSize
);
MgMgcoMediaDesc
*
get_default_media_desc
(
void
);
switch_status_t
handle_media_audit
(
SuId
suId
,
MgMgcoCommand
*
auditReq
);
switch_status_t
mg_send_add_rsp
(
SuId
suId
,
MgMgcoCommand
*
req
);
switch_status_t
mg_send_add_rsp
(
SuId
suId
,
MgMgcoCommand
*
req
);
S16
mg_fill_mgco_termid
(
MgMgcoTermId
*
termId
,
CONSTANT
U8
*
str
,
CmMemListCp
*
memCp
);
S16
mg_fill_mgco_termid
(
MgMgcoTermId
*
termId
,
CONSTANT
U8
*
str
,
CmMemListCp
*
memCp
);
void
mg_util_set_txn_string
(
MgStr
*
errTxt
,
U32
*
txnId
);
void
mg_util_set_txn_string
(
MgStr
*
errTxt
,
U32
*
txnId
);
...
@@ -137,6 +138,7 @@ void mg_util_set_term_string ( MgStr *errTxt, MgMgcoTermId *termId);
...
@@ -137,6 +138,7 @@ void mg_util_set_term_string ( MgStr *errTxt, MgMgcoTermId *termId);
MgMgcoTermIdLst
*
mg_get_term_id_list
(
MgMgcoCommand
*
cmd
);
MgMgcoTermIdLst
*
mg_get_term_id_list
(
MgMgcoCommand
*
cmd
);
switch_status_t
handle_pkg_audit
(
SuId
suId
,
MgMgcoCommand
*
auditReq
);
switch_status_t
handle_pkg_audit
(
SuId
suId
,
MgMgcoCommand
*
auditReq
);
switch_status_t
mg_build_pkg_desc
(
MgMgcoPkgsDesc
*
pkg
);
switch_status_t
mg_build_pkg_desc
(
MgMgcoPkgsDesc
*
pkg
);
switch_status_t
mg_send_heartbeat_audit_rsp
(
SuId
suId
,
MgMgcoCommand
*
auditReq
);
...
...
src/mod/endpoints/mod_media_gateway/media_gateway_utils.c
浏览文件 @
7db1cdef
...
@@ -64,7 +64,7 @@ switch_status_t mg_stack_get_mem(MgMgcoMsg* msg, Ptr* _memPtr, Size _memSize )
...
@@ -64,7 +64,7 @@ switch_status_t mg_stack_get_mem(MgMgcoMsg* msg, Ptr* _memPtr, Size _memSize )
/*****************************************************************************************************************************/
/*****************************************************************************************************************************/
switch_status_t
mg_stack_free_mem
(
MgMgcoMsg
*
msg
)
switch_status_t
mg_stack_free_mem
(
void
*
msg
)
{
{
if
(
!
msg
)
if
(
!
msg
)
{
{
...
@@ -432,3 +432,66 @@ void mg_util_set_term_string ( MgStr *errTxt, MgMgcoTermId *termId)
...
@@ -432,3 +432,66 @@ void mg_util_set_term_string ( MgStr *errTxt, MgMgcoTermId *termId)
"info, error-text is: %s
\n
"
,
__PRETTY_FUNCTION__
,
errTxt
->
val
);
"info, error-text is: %s
\n
"
,
__PRETTY_FUNCTION__
,
errTxt
->
val
);
}
}
/*****************************************************************************************************************************/
/*****************************************************************************************************************************/
MgMgcoMediaDesc
*
get_default_media_desc
()
{
MgMgcoMediaDesc
*
media
=
NULL
;
MgMgcoMediaPar
*
mediaPar
=
NULL
;
MgMgcoTermStateParm
*
trmStPar
=
NULL
;
mg_stack_alloc_mem
((
Ptr
)
&
media
,
sizeof
(
MgMgcoMediaDesc
));
if
(
!
media
)
{
switch_log_printf
(
SWITCH_CHANNEL_LOG_CLEAN
,
SWITCH_LOG_ERROR
,
"failed, memory alloc
\n
"
);
return
NULL
;
}
media
->
num
.
pres
=
PRSNT_NODEF
;
media
->
num
.
val
=
1
;
mg_stack_alloc_mem
((
Ptr
)
&
mediaPar
,
sizeof
(
MgMgcoMediaPar
));
if
(
!
mediaPar
)
{
switch_log_printf
(
SWITCH_CHANNEL_LOG_CLEAN
,
SWITCH_LOG_ERROR
,
"failed, memory alloc
\n
"
);
mg_stack_free_mem
(
media
);
return
NULL
;
}
mg_stack_alloc_mem
((
Ptr
)
&
media
->
parms
,
sizeof
(
MgMgcoMediaPar
*
));
if
(
!
media
->
parms
)
{
switch_log_printf
(
SWITCH_CHANNEL_LOG_CLEAN
,
SWITCH_LOG_ERROR
,
"failed, memory alloc
\n
"
);
mg_stack_free_mem
((
void
*
)
mediaPar
);
mg_stack_free_mem
((
void
*
)
media
);
return
NULL
;
}
mediaPar
->
type
.
pres
=
PRSNT_NODEF
;
mediaPar
->
type
.
val
=
MGT_MEDIAPAR_TERMST
;
mediaPar
->
u
.
tstate
.
numComp
.
pres
=
PRSNT_NODEF
;
mediaPar
->
u
.
tstate
.
numComp
.
val
=
1
;
mg_stack_alloc_mem
((
Ptr
)
&
trmStPar
,
sizeof
(
MgMgcoTermStateParm
));
if
(
!
trmStPar
)
{
switch_log_printf
(
SWITCH_CHANNEL_LOG_CLEAN
,
SWITCH_LOG_ERROR
,
"failed, memory alloc
\n
"
);
mg_stack_free_mem
((
void
*
)
mediaPar
);
mg_stack_free_mem
((
void
*
)
media
->
parms
);
mg_stack_free_mem
((
void
*
)
media
);
return
NULL
;
}
mg_stack_alloc_mem
((
Ptr
)
&
mediaPar
->
u
.
tstate
.
trmStPar
,
sizeof
(
MgMgcoTermStateParm
*
));
if
(
!
mediaPar
->
u
.
tstate
.
trmStPar
)
{
switch_log_printf
(
SWITCH_CHANNEL_LOG_CLEAN
,
SWITCH_LOG_ERROR
,
"failed, memory alloc
\n
"
);
mg_stack_free_mem
((
void
*
)
trmStPar
);
mg_stack_free_mem
((
void
*
)
mediaPar
);
mg_stack_free_mem
((
void
*
)
media
->
parms
);
mg_stack_free_mem
((
void
*
)
media
);
return
NULL
;
}
trmStPar
->
type
.
pres
=
PRSNT_NODEF
;
trmStPar
->
type
.
val
=
MGT_TERMST_SVCST
;
trmStPar
->
u
.
svcState
.
pres
=
PRSNT_NODEF
;
/*TODO - ADD CHECK if term is in svc or not */
trmStPar
->
u
.
svcState
.
val
=
MGT_SVCST_INSVC
;
mediaPar
->
u
.
tstate
.
trmStPar
[
0
]
=
trmStPar
;
media
->
parms
[
0
]
=
mediaPar
;
return
media
;
}
/*****************************************************************************************************************************/
src/mod/endpoints/mod_media_gateway/mod_media_gateway.c
浏览文件 @
7db1cdef
...
@@ -448,9 +448,6 @@ void handle_mgco_cmd_ind(Pst *pst, SuId suId, MgMgcoCommand* cmd)
...
@@ -448,9 +448,6 @@ void handle_mgco_cmd_ind(Pst *pst, SuId suId, MgMgcoCommand* cmd)
{
{
switch_log_printf
(
SWITCH_CHANNEL_LOG
,
SWITCH_LOG_ERROR
,
"Received Audit-Value Method
\n
"
);
switch_log_printf
(
SWITCH_CHANNEL_LOG
,
SWITCH_LOG_ERROR
,
"Received Audit-Value Method
\n
"
);
handle_mg_audit_cmd
(
suId
,
cmd
);
handle_mg_audit_cmd
(
suId
,
cmd
);
/*need to call this for other types of audit..
* ideally from the request apis we should send response..keeping now here just to send dummy responses*/
mg_send_audit_rsp
(
suId
,
cmd
);
break
;
break
;
}
}
break
;
break
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论