[Opalvoip-user] call to openphone_3.18_beta after registering to my FreeSwitch SIP Server -- openph
Brought to you by:
csoutheren,
rjongbloed
From: Evergreen H. <eve...@gm...> - 2023-03-10 10:03:04
|
Hi, Robert, I am testing the `DoRegister` and `DoCall` functions of `opal/samples/c_api/main.c`, and I come across this problem. 1. c_api.exe successfully registered to my FreeSwitch SIP Server with " sip:1001@172.25.31.191" 2. openphone_3.18_beta successfully registered to the same FreeSwitch SIP Server with "sip:1002@172.25.31.191"; (View -> Options -> SIP -> Add) 3. c_api.exe call to openphone with "sip:1002@172.25.31.191", call established, here's the output of c_api.exe: > Media stream audio out eNoRole opened using G.711-uLaw-64k. > Media stream audio in eNoRole opened using G.711-uLaw-64k. > Media stream video out eNoRole opened using H.264-1. > Media stream video in eNoRole opened using H.264-1. and here's the output of openphone log window: > Started sending to sip, session 1, G.711-uLaw-64k, 20ms > Started sending to sip, session 2, H.264-1 > Started receiving from sip, session 1, G.711-uLaw-64k > Started receiving from sip, session 2, H.264-1 > Established call from sip:mod_sofia@121.40.170.194:5060 to sip:1002@172.25.32.61:5060 4. problem: **openphone's video windows is black **, its local preview windows is ok. I check the wireshark captures: 1. c_api.exe has H264 video sent to FreeSwitch SIP server 2. FreeSwitch only send one black video frame to Openphone 3. Openphone displays the black video frame however, if I use openphone instead of c_api.exe, it can register successfully and make call to another openphone correctly(ok to display video). I carefully read the related code of openphone(register and call), and compare it to c_api/main.c, I don't find any diffenrence currently. the `main` function of c_api/main.c is like this: ```C int main() { if (!InitialiseOPAL()) return 1; const char *from = "sip:1001@172.25.31.191"; const char *to = "sip:1002@172.25.31.191"; const char *passwd = "1234"; DoRegister(from, passwd); // sleep for seconds, make sure registration is done DoCall(from, to); while(1) {} } ``` I make a breakpoint on `bool SIPEndPoint::Register(const SIPRegister::Params & newParams, PString & aor, SIP_PDU::StatusCodes * reason)` and I observed that `SIPRegister::Params params` has same parameters as openphone's: ```C params.m_addressOfRecord = "sip:1001@172.25.31.191"; params.m_registrarAddress = "172.25.31.191"; params.m_authID = "1001"; params.m_password = "1234"; params.m_expire = 300; params.m_compatibility = SIPRegister::e_FullyCompliant; ``` I don't know why FreeSwitch only transfer one black video frame to openphone. Is there any problem with my `DoRegister` or `DoCall`? Best Regards, Alex |