mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-10-29 14:44:17 +00:00
Merge branch 'nsg-4.3' of ssh://git.sangoma.com/smg_freeswitch into nsg-4.3
This commit is contained in:
commit
b980f47097
15 files changed
+1311
-66
No files matched your search
@@ -171,7 +171,7 @@ static void stop_chan_io_dump(ftdm_io_dump_t *dump)
|
||||
return;
|
||||
}
|
||||
ftdm_safe_free(dump->buffer);
|
||||
memset(dump, 0, sizeof(dump));
|
||||
memset(dump, 0, sizeof(*dump));
|
||||
}
|
||||
|
||||
static ftdm_status_t start_chan_io_dump(ftdm_channel_t *chan, ftdm_io_dump_t *dump, ftdm_size_t size)
|
||||
|
||||
@@ -124,6 +124,7 @@ static ftdm_status_t handle_show_sctp_profile(ftdm_stream_handle_t *stream, char
|
||||
static ftdm_status_t handle_show_m2ua_profiles(ftdm_stream_handle_t *stream);
|
||||
static ftdm_status_t handle_show_m2ua_profile(ftdm_stream_handle_t *stream, char* m2ua_profile_name);
|
||||
static ftdm_status_t handle_show_m2ua_peer_status(ftdm_stream_handle_t *stream, char* m2ua_profile_name);
|
||||
static ftdm_status_t handle_show_m2ua_cluster_status(ftdm_stream_handle_t *stream, char* m2ua_profile_name);
|
||||
static ftdm_status_t handle_show_nif_profiles(ftdm_stream_handle_t *stream);
|
||||
static ftdm_status_t handle_show_nif_profile(ftdm_stream_handle_t *stream, char* profile_name);
|
||||
int get_assoc_resp_buf(char* buf,SbMgmt* cfm);
|
||||
@@ -427,10 +428,17 @@ ftdm_status_t ftdm_sngss7_handle_cli_cmd(ftdm_stream_handle_t *stream, const cha
|
||||
{
|
||||
char* profile_name = argv[++c];
|
||||
c++;
|
||||
/***************************************************************/
|
||||
if(!strcasecmp(argv[c],"peerstatus")){
|
||||
/***************************************************************/
|
||||
handle_show_m2ua_peer_status(stream, profile_name);
|
||||
}
|
||||
else{
|
||||
/***************************************************************/
|
||||
}else if(!strcasecmp(argv[c],"clusterstatus")){
|
||||
/***************************************************************/
|
||||
handle_show_m2ua_cluster_status(stream, profile_name);
|
||||
/***************************************************************/
|
||||
} else{
|
||||
/***************************************************************/
|
||||
stream->write_function(stream, "Unknown \"show m2ua \" command..\n");
|
||||
goto handle_cli_error_argc;
|
||||
}
|
||||
@@ -933,6 +941,7 @@ static ftdm_status_t handle_print_usage(ftdm_stream_handle_t *stream)
|
||||
stream->write_function(stream, "ftdm ss7 xmlshow m2ua \n");
|
||||
stream->write_function(stream, "ftdm ss7 xmlshow m2ua <m2ua_interface_name>\n");
|
||||
stream->write_function(stream, "ftdm ss7 xmlshow m2ua <m2ua_interface_name> peerstatus\n");
|
||||
stream->write_function(stream, "ftdm ss7 xmlshow m2ua <m2ua_interface_name> clusterstatus\n");
|
||||
stream->write_function(stream, "ftdm ss7 xmlshow nif \n");
|
||||
stream->write_function(stream, "ftdm ss7 xmlshow nif <nif_interface_name>\n");
|
||||
stream->write_function(stream, "\n");
|
||||
@@ -3113,7 +3122,7 @@ static ftdm_status_t handle_show_m2ua_profiles(ftdm_stream_handle_t *stream)
|
||||
len = len + sprintf(buf + len, "<m2ua_profiles>\n");
|
||||
|
||||
if(ftmod_m2ua_ssta_req(STMWGEN, 0x00, &cfm)) {
|
||||
stream->write_function(stream," Request to Trillium M2UA layer failed \n");
|
||||
stream->write_function(stream," Request to layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
} else {
|
||||
len = len + sprintf(buf + len, "<m2ua_gen>\n");
|
||||
@@ -3142,7 +3151,7 @@ static ftdm_status_t handle_show_m2ua_profiles(ftdm_stream_handle_t *stream)
|
||||
len = len + sprintf(buf + len, "<name> %s </name>\n", g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[x].name);
|
||||
|
||||
if(ftmod_m2ua_ssta_req(STMWDLSAP,x,&cfm)) {
|
||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||
stream->write_function(stream," Request to M2UA layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
} else {
|
||||
len = len + sprintf(buf + len, "<m2ua_dlsap>\n");
|
||||
@@ -3156,7 +3165,7 @@ static ftdm_status_t handle_show_m2ua_profiles(ftdm_stream_handle_t *stream)
|
||||
|
||||
memset((U8 *)&cfm, 0, sizeof(MwMgmt));
|
||||
if(ftmod_m2ua_ssta_req(STMWCLUSTER,g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[x].clusterId,&cfm)) {
|
||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||
stream->write_function(stream," Request to M2UA layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
} else {
|
||||
len = len + sprintf(buf + len, "<m2ua_cluster>\n");
|
||||
@@ -3187,18 +3196,14 @@ static ftdm_status_t handle_show_m2ua_profiles(ftdm_stream_handle_t *stream)
|
||||
if(LMW_PEER_DOWN != rsp.t.ssta.s.clusterSta.peerSt[idx].peerState){
|
||||
|
||||
if(ftmod_m2ua_ssta_req(STMWPEER, peer_id, &cfm)) {
|
||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||
stream->write_function(stream," Request to M2UA layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
} else {
|
||||
len = len + sprintf(buf + len, "<m2ua_peer>\n");
|
||||
len = len + sprintf(buf + len, "<name> %s </name>\n",g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua_peer[peer_id].name);
|
||||
len = len + sprintf(buf + len," <state> %s </state>\n", PRNT_M2UA_PEER_STATE(cfm.t.ssta.s.peerSta.state));
|
||||
len = len + sprintf(buf + len, " <retry_count> %d </retry_count>\n",cfm.t.ssta.s.peerSta.retryCount);
|
||||
#ifdef BIT_64
|
||||
len = len + sprintf(buf + len, " <assoc_id> %d </assoc_id>\n", (int64_t) cfm.t.ssta.s.peerSta.assocSta.spAssocId);
|
||||
#else
|
||||
len = len + sprintf(buf + len, " <assoc_id> %lld </assoc_id>\n", (int64_t) cfm.t.ssta.s.peerSta.assocSta.spAssocId);
|
||||
#endif
|
||||
len = len + sprintf(buf + len, " <assoc_id> %d </assoc_id>\n", (int)cfm.t.ssta.s.peerSta.assocSta.spAssocId);
|
||||
len = len + sprintf(buf + len, " <connected_status> %s </connected_status>\n",(cfm.t.ssta.s.peerSta.assocSta.connected)?"CONNECTED":"NOT CONNECTED");
|
||||
len = len + sprintf(buf + len, " <flow_cntrl_progress> %d </flow_cntrl_progress>\n",cfm.t.ssta.s.peerSta.assocSta.flcInProg);
|
||||
len = len + sprintf(buf + len, " <flow_cntrl_level> %d </flow_cntrl_level>\n",cfm.t.ssta.s.peerSta.assocSta.flcLevel);
|
||||
@@ -3218,17 +3223,13 @@ static ftdm_status_t handle_show_m2ua_profiles(ftdm_stream_handle_t *stream)
|
||||
|
||||
memset((U8 *)&cfm, 0, sizeof(MwMgmt));
|
||||
if(ftmod_m2ua_ssta_req(STMWSCTSAP,x,&cfm)) {
|
||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||
stream->write_function(stream," Request to M2UA layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
} else {
|
||||
len = len + sprintf(buf + len, "<m2ua_sctp_sap>\n");
|
||||
len = len + sprintf(buf + len," <state> %s </state>\n", PRNT_M2UA_SAP_STATE(cfm.t.ssta.s.sctSapSta.state));
|
||||
len = len + sprintf(buf + len," <end_point_open_state> %s </end_point_open_state>\n", (cfm.t.ssta.s.sctSapSta.endpOpen)?"END_POINT_OPENED_SUCCESSFULLY":"END_POINT_NOT_OPEN");
|
||||
#ifdef BIT_64
|
||||
len = len + sprintf(buf + len," <end_point_id> %d </end_point_id>\n", (int64_t) cfm.t.ssta.s.sctSapSta.spEndpId);
|
||||
#else
|
||||
len = len + sprintf(buf + len," <end_point_id> %lld </end_point_id>\n", (int64_t) cfm.t.ssta.s.sctSapSta.spEndpId);
|
||||
#endif
|
||||
len = len + sprintf(buf + len," <end_point_id> %d </end_point_id>\n", (int) cfm.t.ssta.s.sctSapSta.spEndpId);
|
||||
len = len + sprintf(buf + len," <nmb_of_retry_attemp> %d </nmb_of_retry_attemp>\n", cfm.t.ssta.s.sctSapSta.nmbPrimRetry);
|
||||
len = len + sprintf(buf + len, "</m2ua_sctp_sap>\n");
|
||||
}
|
||||
@@ -3241,7 +3242,7 @@ static ftdm_status_t handle_show_m2ua_profiles(ftdm_stream_handle_t *stream)
|
||||
len = len + sprintf(buf + len, "</m2ua_profiles>\n");
|
||||
stream->write_function(stream,"\n%s\n",buf);
|
||||
|
||||
return FTDM_FAIL;
|
||||
return FTDM_SUCCESS;
|
||||
|
||||
}
|
||||
|
||||
@@ -3294,7 +3295,7 @@ static ftdm_status_t handle_show_m2ua_profile(ftdm_stream_handle_t *stream, char
|
||||
len = len + sprintf(buf + len, "<name> %s </name>\n", m2ua_profile_name);
|
||||
|
||||
if(ftmod_m2ua_ssta_req(STMWDLSAP,x,&cfm)) {
|
||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||
stream->write_function(stream," Request to M2UA layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
} else {
|
||||
len = len + sprintf(buf + len, "<m2ua_dlsap>\n");
|
||||
@@ -3307,7 +3308,7 @@ static ftdm_status_t handle_show_m2ua_profile(ftdm_stream_handle_t *stream, char
|
||||
}
|
||||
|
||||
if(ftmod_m2ua_ssta_req(STMWCLUSTER, g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[x].clusterId, &cfm)) {
|
||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||
stream->write_function(stream," Request to M2UA layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
} else {
|
||||
len = len + sprintf(buf + len, "<m2ua_cluster>\n");
|
||||
@@ -3333,7 +3334,7 @@ static ftdm_status_t handle_show_m2ua_profile(ftdm_stream_handle_t *stream, char
|
||||
memset((U8 *)&cfm, 0, sizeof(MwMgmt));
|
||||
|
||||
if(ftmod_m2ua_ssta_req(STMWPEER, rsp.t.ssta.s.clusterSta.peerSt[idx].peerId, &cfm)) {
|
||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||
stream->write_function(stream," Request to M2UA layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
} else {
|
||||
len = len + sprintf(buf + len, "<m2ua_peer>\n");
|
||||
@@ -3356,7 +3357,7 @@ static ftdm_status_t handle_show_m2ua_profile(ftdm_stream_handle_t *stream, char
|
||||
}
|
||||
|
||||
if(ftmod_m2ua_ssta_req(STMWSCTSAP,x,&cfm)) {
|
||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||
stream->write_function(stream," Request to M2UA layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
} else {
|
||||
len = len + sprintf(buf + len, "<m2ua_sctp_sap>\n");
|
||||
@@ -3375,7 +3376,7 @@ static ftdm_status_t handle_show_m2ua_profile(ftdm_stream_handle_t *stream, char
|
||||
|
||||
stream->write_function(stream,"\n%s\n",buf);
|
||||
|
||||
return FTDM_FAIL;
|
||||
return FTDM_SUCCESS;
|
||||
|
||||
}
|
||||
|
||||
@@ -3401,7 +3402,7 @@ static ftdm_status_t handle_show_sctp_profiles(ftdm_stream_handle_t *stream)
|
||||
len = len + sprintf(buf + len, "<sctp_profiles>\n");
|
||||
|
||||
if(ftmod_sctp_ssta_req(STSBGEN, 0x00, &cfm)) {
|
||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||
stream->write_function(stream," Request to SCTP layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
} else {
|
||||
len = len + sprintf(buf + len, "<sctp_gen>\n");
|
||||
@@ -3421,7 +3422,7 @@ static ftdm_status_t handle_show_sctp_profiles(ftdm_stream_handle_t *stream)
|
||||
|
||||
#ifdef LSB12
|
||||
if(ftmod_sctp_ssta_req(STSBTMR, 0x00, &cfm)) {
|
||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||
stream->write_function(stream," Request to SCTP layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
} else {
|
||||
len = len + sprintf(buf + len, "<sctp_timers>\n");
|
||||
@@ -3453,7 +3454,7 @@ static ftdm_status_t handle_show_sctp_profiles(ftdm_stream_handle_t *stream)
|
||||
len = len + sprintf(buf + len, "<sctp_profile>\n");
|
||||
|
||||
if(ftmod_sctp_ssta_req(STSBSCTSAP,x,&cfm)) {
|
||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||
stream->write_function(stream," Request to SCTP layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
} else {
|
||||
len = len + sprintf(buf + len, "<sctp_sap>\n");
|
||||
@@ -3463,7 +3464,7 @@ static ftdm_status_t handle_show_sctp_profiles(ftdm_stream_handle_t *stream)
|
||||
}
|
||||
|
||||
if(ftmod_sctp_ssta_req(STSBTSAP,x,&cfm)) {
|
||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||
stream->write_function(stream," Request to SCTP layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
} else {
|
||||
len = len + sprintf(buf + len, "<sctp_transport_sap>\n");
|
||||
@@ -3478,7 +3479,7 @@ static ftdm_status_t handle_show_sctp_profiles(ftdm_stream_handle_t *stream)
|
||||
len = len + sprintf(buf + len, " <status> SCT_ASSOC_STATE_CLOSED </status>\n");
|
||||
len = len + sprintf(buf + len, "</sctp_association>\n");
|
||||
}else{
|
||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||
stream->write_function(stream," Request to SCTP layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
}
|
||||
} else {
|
||||
@@ -3647,7 +3648,7 @@ static ftdm_status_t handle_show_sctp_profile(ftdm_stream_handle_t *stream, char
|
||||
len = len + sprintf(buf + len, "<sctp_profile>\n");
|
||||
|
||||
if(ftmod_sctp_ssta_req(STSBSCTSAP,x,&cfm)) {
|
||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||
stream->write_function(stream," Request to SCTP layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
} else {
|
||||
len = len + sprintf(buf + len, "<sctp_sap>\n");
|
||||
@@ -3657,7 +3658,7 @@ static ftdm_status_t handle_show_sctp_profile(ftdm_stream_handle_t *stream, char
|
||||
}
|
||||
|
||||
if(ftmod_sctp_ssta_req(STSBTSAP,x,&cfm)) {
|
||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||
stream->write_function(stream," Request to SCTP layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
} else {
|
||||
len = len + sprintf(buf + len, "<sctp_transport_sap>\n");
|
||||
@@ -3673,7 +3674,7 @@ static ftdm_status_t handle_show_sctp_profile(ftdm_stream_handle_t *stream, char
|
||||
len = len + sprintf(buf + len, " <status> SCT_ASSOC_STATE_CLOSED </status>\n");
|
||||
len = len + sprintf(buf + len, "</sctp_association>\n");
|
||||
}else{
|
||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||
stream->write_function(stream," Request to SCTP layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
}
|
||||
} else {
|
||||
@@ -3713,7 +3714,7 @@ static ftdm_status_t handle_show_nif_profiles(ftdm_stream_handle_t *stream)
|
||||
len = len + sprintf(buf + len, "<nif_profiles>\n");
|
||||
|
||||
if(ftmod_nif_ssta_req(STNWGEN, 0x00, &cfm)) {
|
||||
stream->write_function(stream," Request to Trillium NIF layer failed \n");
|
||||
stream->write_function(stream," Request to NIF layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
} else {
|
||||
len = len + sprintf(buf + len, "<nif_gen>\n");
|
||||
@@ -3736,7 +3737,7 @@ static ftdm_status_t handle_show_nif_profiles(ftdm_stream_handle_t *stream)
|
||||
len = len + sprintf(buf + len, "<nif_profile>\n");
|
||||
|
||||
if(ftmod_nif_ssta_req(STNWDLSAP,x,&cfm)) {
|
||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||
stream->write_function(stream," Request to NIF layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
} else {
|
||||
len = len + sprintf(buf + len, "<nif_dlsap>\n");
|
||||
@@ -3758,7 +3759,7 @@ static ftdm_status_t handle_show_nif_profiles(ftdm_stream_handle_t *stream)
|
||||
len = len + sprintf(buf + len, "</nif_profiles>\n");
|
||||
stream->write_function(stream,"\n%s\n",buf);
|
||||
|
||||
return FTDM_FAIL;
|
||||
return FTDM_SUCCESS;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@@ -3805,7 +3806,7 @@ static ftdm_status_t handle_show_nif_profile(ftdm_stream_handle_t *stream, char*
|
||||
len = len + sprintf(buf + len, "<nif_profile>\n");
|
||||
|
||||
if(ftmod_nif_ssta_req(STNWDLSAP,x,&cfm)) {
|
||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||
stream->write_function(stream," Request to NIF layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
} else {
|
||||
len = len + sprintf(buf + len, "<nif_dlsap>\n");
|
||||
@@ -3823,7 +3824,7 @@ static ftdm_status_t handle_show_nif_profile(ftdm_stream_handle_t *stream, char*
|
||||
|
||||
stream->write_function(stream,"\n%s\n",buf);
|
||||
|
||||
return FTDM_FAIL;
|
||||
return FTDM_SUCCESS;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
@@ -3883,7 +3884,7 @@ static ftdm_status_t handle_show_m2ua_peer_status(ftdm_stream_handle_t *stream,
|
||||
peer = &g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua_peer[peer_id];
|
||||
|
||||
if(ftmod_m2ua_ssta_req(STMWPEER, peer_id, &cfm)) {
|
||||
stream->write_function(stream," Request to Trillium M2UA layer failed \n");
|
||||
stream->write_function(stream," Request to M2UA layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
} else {
|
||||
len = len + sprintf(buf + len, "<m2ua_peer>\n");
|
||||
@@ -3902,7 +3903,7 @@ static ftdm_status_t handle_show_m2ua_peer_status(ftdm_stream_handle_t *stream,
|
||||
len = len + sprintf(buf + len, " <status> SCT_ASSOC_STATE_CLOSED </status>\n");
|
||||
len = len + sprintf(buf + len, "</sctp_association>\n");
|
||||
}else{
|
||||
stream->write_function(stream," Request to Trillium SCTP layer failed \n");
|
||||
stream->write_function(stream," Request to SCTP layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
}
|
||||
} else {
|
||||
@@ -3914,7 +3915,82 @@ static ftdm_status_t handle_show_m2ua_peer_status(ftdm_stream_handle_t *stream,
|
||||
|
||||
stream->write_function(stream,"\n%s\n",buf);
|
||||
|
||||
return FTDM_FAIL;
|
||||
return FTDM_SUCCESS;
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
* Fun: handle_show_m2ua_cluster_status()
|
||||
* Desc: display requested m2ua profile cluster information
|
||||
* Ret: FTDM_SUCCESS | FTDM_FAIL
|
||||
* Note:
|
||||
* author: Kapil Gupta
|
||||
*******************************************************************************/
|
||||
|
||||
static ftdm_status_t handle_show_m2ua_cluster_status(ftdm_stream_handle_t *stream, char* m2ua_profile_name)
|
||||
{
|
||||
char* xmlhdr = (char*)"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>";
|
||||
char buf[4096];
|
||||
int x = 0x00;
|
||||
int found = 0x00;
|
||||
int len = 0x00;
|
||||
int idx = 0x00;
|
||||
MwMgmt cfm;
|
||||
SbMgmt sctp_cfm;
|
||||
sng_m2ua_cluster_cfg_t* clust = NULL;
|
||||
sng_m2ua_cfg_t* m2ua = NULL;
|
||||
|
||||
memset((U8 *)&cfm, 0, sizeof(MwMgmt));
|
||||
memset((U8 *)&sctp_cfm, 0, sizeof(SbMgmt));
|
||||
memset(&buf[0], 0, sizeof(buf));
|
||||
|
||||
len = len + sprintf(buf + len, "%s\n", xmlhdr);
|
||||
|
||||
/*iterate through all the m2ua links and get required profile */
|
||||
x = 1;
|
||||
while(x<MW_MAX_NUM_OF_INTF){
|
||||
if((g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[x].id !=0) &&
|
||||
((g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[x].flags & SNGSS7_ACTIVE))) {
|
||||
|
||||
if(!strcasecmp(m2ua_profile_name, g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[x].name)){
|
||||
found = 0x01;
|
||||
break;
|
||||
}
|
||||
}
|
||||
x++;
|
||||
}
|
||||
|
||||
if(!found){
|
||||
stream->write_function(stream,"Requested M2UA profile[%s] not configured\n", m2ua_profile_name);
|
||||
return FTDM_FAIL;
|
||||
}
|
||||
|
||||
m2ua = &g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[x];
|
||||
clust = &g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua_clus[m2ua->clusterId];
|
||||
|
||||
if(ftmod_m2ua_ssta_req(STMWCLUSTER,g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua[x].clusterId,&cfm)) {
|
||||
stream->write_function(stream," Request to M2UA layer failed \n");
|
||||
return FTDM_FAIL;
|
||||
} else {
|
||||
len = len + sprintf(buf + len, "<m2ua_cluster>\n");
|
||||
len = len + sprintf(buf + len, "<name> %s </name>\n",clust->name);
|
||||
len = len + sprintf(buf + len," <state> %s </state>\n", PRNT_M2UA_CLUSTER_STATE(cfm.t.ssta.s.clusterSta.state));
|
||||
len = len + sprintf(buf + len, "<num_of_peers> %d </num_of_peers>\n",cfm.t.ssta.s.clusterSta.nmbPeer);
|
||||
for(idx = 0; idx < cfm.t.ssta.s.clusterSta.nmbPeer; idx++)
|
||||
{
|
||||
len = len + sprintf(buf + len, "<m2ua_cluster_peer>\n");
|
||||
len = len + sprintf(buf + len, " <peer_name> %s </peer_name>\n", g_ftdm_sngss7_data.cfg.g_m2ua_cfg.m2ua_peer[cfm.t.ssta.s.clusterSta.peerSt[idx].peerId].name);
|
||||
len = len + sprintf(buf + len, " <peer_id> %d </peer_id>\n", cfm.t.ssta.s.clusterSta.peerSt[idx].peerId);
|
||||
len = len + sprintf(buf + len, " <peer_state> %s </peer_state>\n", PRNT_M2UA_PEER_STATE(cfm.t.ssta.s.clusterSta.peerSt[idx].peerState));
|
||||
len = len + sprintf(buf + len, "</m2ua_cluster_peer>\n");
|
||||
}
|
||||
len = len + sprintf(buf + len, "<num_active_peer> %d </num_active_peer>\n",cfm.t.ssta.s.clusterSta.nmbActPeer);
|
||||
|
||||
len = len + sprintf(buf + len, "</m2ua_cluster>\n");
|
||||
}
|
||||
|
||||
stream->write_function(stream,"\n%s\n",buf);
|
||||
|
||||
return FTDM_SUCCESS;
|
||||
}
|
||||
|
||||
/******************************************************************************/
|
||||
|
||||
@@ -793,10 +793,10 @@ static int ftmod_m2ua_peer_config(int id)
|
||||
ftdm_log (FTDM_LOG_INFO, " ftmod_m2ua_sctsap_config: M2UA SCTSAP for M2UA Intf Id[%d] config SUCCESS \n", id);
|
||||
}
|
||||
if(ftmod_m2ua_peer_config1(id, peer_id)){
|
||||
ftdm_log (FTDM_LOG_ERROR, " ftmod_m2ua_peer_config1: M2UA Peer configuration for M2UA Intf Id[%d] config FAILED \n", id);
|
||||
ftdm_log (FTDM_LOG_ERROR, " ftmod_m2ua_peer_config1: M2UA Peer[%d] configuration for M2UA Intf Id[%d] config FAILED \n", peer_id, id);
|
||||
return 0x01;
|
||||
}else{
|
||||
ftdm_log (FTDM_LOG_INFO, " ftmod_m2ua_peer_config1: M2UA Peer configuration for M2UA Intf Id[%d] config SUCCESS \n", id);
|
||||
ftdm_log (FTDM_LOG_INFO, " ftmod_m2ua_peer_config1: M2UA Peer[%d] configuration for M2UA Intf Id[%d] config SUCCESS \n", peer_id, id);
|
||||
}
|
||||
|
||||
clust->sct_sap_id = id;
|
||||
@@ -813,13 +813,28 @@ static int ftmod_m2ua_peer_config(int id)
|
||||
static int ftmod_m2ua_sctsap_config(int sct_sap_id, int sctp_id)
|
||||
{
|
||||
int i;
|
||||
int ret;
|
||||
Pst pst;
|
||||
MwMgmt cfg;
|
||||
MwMgmt cfm;
|
||||
sng_sctp_link_t *sctp = &g_ftdm_sngss7_data.cfg.sctpCfg.linkCfg[sctp_id];
|
||||
|
||||
|
||||
|
||||
memset((U8 *)&cfg, 0, sizeof(MwMgmt));
|
||||
memset((U8 *)&cfm, 0, sizeof(MwMgmt));
|
||||
memset((U8 *)&pst, 0, sizeof(Pst));
|
||||
|
||||
/* check is sct_sap is already configured */
|
||||
if(!ftmod_m2ua_ssta_req(STMWSCTSAP, sct_sap_id, &cfm )){
|
||||
ftdm_log (FTDM_LOG_INFO, " ftmod_m2ua_sctsap_config: SCT SAP [%s] is already configured \n", sctp->name);
|
||||
return 0x00;
|
||||
}
|
||||
|
||||
if(LCM_REASON_INVALID_SAP == cfm.cfm.reason){
|
||||
ftdm_log (FTDM_LOG_INFO, " ftmod_m2ua_sctsap_config: SCT SAP [%s] is not configured..configuring now \n", sctp->name);
|
||||
}
|
||||
|
||||
smPstInit(&pst);
|
||||
|
||||
pst.dstEnt = ENTMW;
|
||||
@@ -880,8 +895,11 @@ static int ftmod_m2ua_sctsap_config(int sct_sap_id, int sctp_id)
|
||||
cfg.t.cfg.s.sctSapCfg.reConfig.mem.region = S_REG;
|
||||
cfg.t.cfg.s.sctSapCfg.reConfig.mem.pool = S_POOL;
|
||||
|
||||
return (sng_cfg_m2ua (&pst, &cfg));
|
||||
if (0 == (ret = sng_cfg_m2ua (&pst, &cfg))){
|
||||
sctp->flags |= SNGSS7_CONFIGURED;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/****************************************************************************************************/
|
||||
|
||||
Reference in new issue
Block a user