]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
adding M2UA SG open endpoint request code
authorKapil <kgupta@sangoma.com>
Tue, 29 May 2012 09:36:25 +0000 (15:06 +0530)
committerKapil <kgupta@sangoma.com>
Tue, 29 May 2012 09:36:25 +0000 (15:06 +0530)
libs/freetdm/src/ftmod/ftmod_sangoma_ss7/ftmod_sangoma_ss7_m2ua.c

index 375be9f35a1888743f8cd3dbc6bd74bd6c473ddc..c6c1689ddc8aef6af5c4792442f546446462abc0 100644 (file)
@@ -69,6 +69,7 @@ ftdm_status_t sng_m2ua_cfg(void);
 
 static S16 ftmod_sigtran_tsap_bnd(void);
 static S16 ftmod_sigtran_sctsap_bnd(void);
+static S16 ftmod_sigtran_open_endpoint(void);
 static S16 ftmod_sigtran_dlsap_bnd(U32 id);
 static S16 ftmod_ss7_dlsap_bnd(U32 id);
 
@@ -708,16 +709,16 @@ static S16 ftmod_sigtran_m2ua_sctsap_config(void)
    /* service provider ID   */
    cfg.t.cfg.s.sctSapCfg.spId                   = 1; /* TUCL sct sap id is 1 */
    /* source port number */
-   cfg.t.cfg.s.sctSapCfg.srcPort                = 0;
+   cfg.t.cfg.s.sctSapCfg.srcPort                = 2904;
    /* interface address */
    /*For multiple IP address support */
 #ifdef SCT_ENDP_MULTI_IPADDR
    cfg.t.cfg.s.sctSapCfg.srcAddrLst.nmb = 1;
    cfg.t.cfg.s.sctSapCfg.srcAddrLst.nAddr[0].type = CM_NETADDR_IPV4;
-   cfg.t.cfg.s.sctSapCfg.srcAddrLst.nAddr[0].u.ipv4NetAddr = ftmod_parse_conv_ipaddr((S8*)"192.168.1.100");
+   cfg.t.cfg.s.sctSapCfg.srcAddrLst.nAddr[0].u.ipv4NetAddr = ftmod_parse_conv_ipaddr((S8*)"192.168.1.102");
 #else
    cfg.t.cfg.s.sctSapCfg.intfAddr.type          = CM_NETADDR_IPV4;
-   cfg.t.cfg.s.sctSapCfg.intfAddr.u.ipv4NetAddr = ftmod_parse_conv_ipaddr((S8*)"192.168.1.100");
+   cfg.t.cfg.s.sctSapCfg.intfAddr.u.ipv4NetAddr = ftmod_parse_conv_ipaddr((S8*)"192.168.1.102");
 #endif
 
    /* lower SAP primitive timer */
@@ -784,7 +785,7 @@ static S16 ftmod_sigtran_m2ua_peer_config(void)
    cfg.t.cfg.s.peerCfg.assocCfg.suId = 0; /* SCTSAP ID */
    cfg.t.cfg.s.peerCfg.assocCfg.dstAddrLst.nmb = 1; /* destination address list*/
    cfg.t.cfg.s.peerCfg.assocCfg.dstAddrLst.nAddr[0].type = CM_NETADDR_IPV4;
-   cfg.t.cfg.s.peerCfg.assocCfg.dstAddrLst.nAddr[0].u.ipv4NetAddr = ftmod_parse_conv_ipaddr((S8*)"192.168.1.100");/* TODO */;
+   cfg.t.cfg.s.peerCfg.assocCfg.dstAddrLst.nAddr[0].u.ipv4NetAddr = ftmod_parse_conv_ipaddr((S8*)"192.168.1.101");/* TODO */;
 #if 0   
    cfg.t.cfg.s.peerCfg.assocCfg.dstAddrLst.nAddr[1].type = CM_NETADDR_IPV4;
    cfg.t.cfg.s.peerCfg.assocCfg.dstAddrLst.nAddr[1].u.ipv4NetAddr = ftmod_parse_conv_ipaddr("172.25.0.93"); /* TODO */;
@@ -794,7 +795,7 @@ static S16 ftmod_sigtran_m2ua_peer_config(void)
 #endif
    cfg.t.cfg.s.peerCfg.assocCfg.srcAddrLst.nmb = 1; /* source address list */
    cfg.t.cfg.s.peerCfg.assocCfg.srcAddrLst.nAddr[0].type =  CM_NETADDR_IPV4;
-   cfg.t.cfg.s.peerCfg.assocCfg.srcAddrLst.nAddr[0].u.ipv4NetAddr = ftmod_parse_conv_ipaddr((S8*)"192.168.1.100");/* TODO */;
+   cfg.t.cfg.s.peerCfg.assocCfg.srcAddrLst.nAddr[0].u.ipv4NetAddr = ftmod_parse_conv_ipaddr((S8*)"192.168.1.102");/* TODO */;
 
    cfg.t.cfg.s.peerCfg.assocCfg.priDstAddr.type = CM_NETADDR_IPV4;
    cfg.t.cfg.s.peerCfg.assocCfg.priDstAddr.u.ipv4NetAddr = cfg.t.cfg.s.peerCfg.assocCfg.dstAddrLst.nAddr[0].u.ipv4NetAddr;
@@ -1196,10 +1197,53 @@ int ftmod_ss7_m2ua_start(void){
          ftdm_log (FTDM_LOG_INFO ,"Control request to bind DLSAP between NIF and MTP2 : OK\n");
       }
    }
+
+   /* Send a control request to open endpoint */
+   if( (ret = ftmod_sigtran_open_endpoint()) != ROK)
+   {
+      ftdm_log (FTDM_LOG_ERROR ,"ftmod_sigtran_open_endpoint FAIL  \n");
+      return 1;
+   }   
+   else
+   {
+      ftdm_log (FTDM_LOG_ERROR ,"ftmod_sigtran_open_endpoint SUCCESS  \n");
+   }
+
    return 0;
 }
 
+static S16 ftmod_sigtran_open_endpoint(void)
+{
+  Pst pst;
+  MwMgmt cntrl;  
 
+  memset((U8 *)&pst, 0, sizeof(Pst));
+  memset((U8 *)&cntrl, 0, sizeof(MwMgmt));
+
+  smPstInit(&pst);
+
+  pst.dstEnt = ENTMW;
+
+  /* prepare header */
+  cntrl.hdr.msgType     = TCNTRL;         /* message type */
+   cntrl.hdr.entId.ent   = ENTMW;          /* entity */
+   cntrl.hdr.entId.inst  = 0;              /* instance */
+   cntrl.hdr.elmId.elmnt = STMWSCTSAP;       /* General */
+   cntrl.hdr.transId     = 1;     /* transaction identifier */
+
+   cntrl.hdr.response.selector    = 0;
+   cntrl.hdr.response.prior       = PRIOR0;
+   cntrl.hdr.response.route       = RTESPEC;
+   cntrl.hdr.response.mem.region  = S_REG;
+   cntrl.hdr.response.mem.pool    = S_POOL;
+
+
+   cntrl.t.cntrl.action = AMWENDPOPEN;
+   cntrl.t.cntrl.s.suId = 0; /* M2UA sct sap Id */
+
+     return (sng_cntrl_m2ua (&pst, &cntrl));
+
+}
 
 static S16 ftmod_sigtran_tsap_bnd(void)
 {