程序代码可以呼叫通voip,但是用apitest呼叫不通。
VoIPCallPrivate_t paramVoIPCall = {0};
paramVoIPCall.m_PrivateData.m_u32DataSize = sizeof(VoIPCallPrivate_t);
paramVoIPCall.m_s32Protocol = XMS_VOIP_PROTOCOL_SIP;//m_iProtocol == 0 ? XMS_VOIP_PROTOCOL_H323 : XMS_VOIP_PROTOCOL_SIP;
//!!!对于voip呼叫,以telno呼叫时,不能包含地址、端口、和用户ID,从示例voipdemo中可以验证。否则呼叫不会接通
//strcpy(paramVoIPCall.m_s8CalleeAddress, "");
//paramVoIPCall.m_s32CalleePort = 5060;
//strcpy(paramVoIPCall.m_s8CalleeUserID, "203");
// use code below to set media caps (supported in v2.1.2)
paramVoIPCall.m_u8MediaCapNum = 0;
paramVoIPCall.m_u8MediaCapList[0] = VOIP_MEDIA_AUDIO_G723;
paramVoIPCall.m_u8MediaCapList[1] = VOIP_MEDIA_AUDIO_PCMA;
paramVoIPCall.m_u8MediaCapList[2] = VOIP_MEDIA_AUDIO_G729;
// send make call command
//!!!对于voip呼叫,以telno呼叫时,不能包含地址、端口、和用户ID,从示例voipdemo中可以验证。否则呼叫不会接通
tVoip* voipchn=&DSP[1].Voip[0];
RetCode_t ret = XMS_ctsMakeCallOut(g_acsHandle, &voipchn->deviceID,
"", "203", (PrivateData_t *)¶mVoIPCall);
解决办法:
apitest中不支持使用203注册号码进行呼叫,必须用被叫ip加端口号进行呼叫。
另外voipdemo中支持203号码呼叫,但不能使用地址和端口号;要么使用地址和端口号,但不要使用203号码呼叫。
1、在交换机配置界面查看voip注册资源对应的被叫IP和端口。
2、在apitest中输入192.168.0.203 63694,注意是被叫ip和端口!!! 不是主机192.168.0.168 5060,那样怎么都不会通。
3、makecallout即可。