I wanted to give a try to existing precoded_announce app to see what is going on and found that SDP codec bitrate is wrong in 200 OK generated by SEMS in that also. v=0 o=sems 1947846174 1398121587 IN IP4 31.193.168.250 s=sems c=IN IP4 31.193.168.250 t=0 0 m=audio 40000 RTP/AVP 18 a=rtpmap:18 G729/124 a=sendrecv a=direction:both
My predef file is like below # format: # codec id;payload name;samplerate;channels;format parameters;frame milliseconds;frame bytes;filename (full path) # # to create e.g. .gsm file: # sox test.wav -r 8000 -c 1 -g test8k.gsm # 18;G729;8000;1;<none>;20;20;dirintro.g729; Complete debug just before 200 OK relay is.. (I do not see any problem in this log) [#7f1c95bcc700/16565] [handle_sip_request, SipCtrlInterface.cpp:782] DEBUG: body-ct = <application/sdp> [#7f1c95bcc700/16565] [handleSipMsg, AmSipDispatcher.cpp:105] DEBUG: method: `INVITE' [6]. [#7f1c95bcc700/16565] [AmSession, AmSession.cpp:86] DEBUG: dlg = (nil) [#7f1c95bcc700/16565] [RTPStream, AmSession.h:619] DEBUG: creating RTP stream instance for session [0x7f1c70002a80] [#7f1c95bcc700/16565] [setLocalTag, AmSession.cpp:226] DEBUG: AmSession::setLocalTag() - session id set to 669F7FD4-542F99690003415D-95BCC700 [#7f1c95bcc700/16565] [handle_sip_request, SipCtrlInterface.cpp:788] DEBUG: ^^ M [6c76c8cc9b1a4814bc9c909bcbd14a99|] Ru SIP request INVITE handled ^^ [#7f1c95272700/16574] [_start, AmThread.cpp:65] DEBUG: Thread 139760738182912 is starting. [#7f1c95272700/16574] [run, AmSession.cpp:264] DEBUG: startup session [#7f1c95272700/16574] [run, AmSession.cpp:268] DEBUG: running session event loop [#7f1c95272700/16574] [processingCycle, AmSession.cpp:373] DEBUG: vv S [|669F7FD4-542F99690003415D-95BCC700] Disconnected, running, 0 UACTransPending, 0 usages vv [#7f1c95272700/16574] [process, AmSession.cpp:659] DEBUG: AmSession processing event [#7f1c95272700/16574] [onRxRequest, AmBasicSipDialog.cpp:304] DEBUG: AmBasicSipDialog::onRxRequest(req = INVITE) [#7f1c95272700/16574] [onRequestIn, Am100rel.cpp:32] DEBUG: 100rel now active. [#7f1c95272700/16574] [setOutboundInterface, AmBasicSipDialog.cpp:148] DEBUG: setting outbound interface to 0 [#7f1c95272700/16574] [setStatus, AmBasicSipDialog.cpp:84] DEBUG: setting SIP dialog status: Disconnected->Trying [#7f1c95272700/16574] [onRxSdp, AmOfferAnswer.cpp:215] DEBUG: entering onRxSdp(), oa_state=None [#7f1c95272700/16574] [parse_sdp_line_ex, AmSdp.cpp:562] DEBUG: parsing SDP message... [#7f1c95272700/16574] [parse_sdp_media, AmSdp.cpp:926] DEBUG: SDP: got media: port 30640, payloads: 18 96 [#7f1c95272700/16574] [parse_sdp_connection, AmSdp.cpp:787] DEBUG: SDP: got media level connection: IP4 31.193.168.250 [#7f1c95272700/16574] [attr_check, AmSdp.cpp:1445] DEBUG: unknown attribute: rtcp [#7f1c95272700/16574] [setState, AmOfferAnswer.cpp:69] DEBUG: setting SIP dialog O/A status: None->OfferRecved [#7f1c95272700/16574] [onRxSdp, AmOfferAnswer.cpp:265] DEBUG: oa_state: None -> OfferRecved [#7f1c95272700/16574] [onSipRequest, AmSession.cpp:709] DEBUG: onSipRequest: method = INVITE [#7f1c95272700/16574] [updateRefreshMethod, AmSession.cpp:1058] DEBUG: remote allows UPDATE, using UPDATE for session refresh. [#7f1c95272700/16574] [reply, AmBasicSipDialog.cpp:579] DEBUG: reply: transaction found! [#7f1c95272700/16574] [getSdpAnswer, AmSession.cpp:911] DEBUG: AmSession::getSdpAnswer(...) ... [#7f1c95272700/16574] [setLocalIP, AmRtpStream.cpp:103] DEBUG: ip = 31.193.168.250 [#7f1c95272700/16574] [setLocalPort, AmRtpStream.cpp:215] DEBUG: added stream [0x7f1c95273010] to RTP receiver (31.193.168.250:40000/40001) [#7f1c95272700/16574] [setState, AmOfferAnswer.cpp:69] DEBUG: setting SIP dialog O/A status: OfferRecved->Completed [#7f1c95272700/16574] [setStatus, AmBasicSipDialog.cpp:84] DEBUG: setting SIP dialog status: Trying->Connected [#7f1c95272700/16574] [patch_contact_transport, trans_layer.cpp:160] DEBUG: contact: <<sip:192.168.112.5:5080>> [#7f1c95272700/16574] [parse_sip_uri, parse_uri.cpp:338] DEBUG: Converted URI port (5080) to int (5080) [#7f1c95272700/16574] [send_reply, trans_layer.cpp:410] DEBUG: reply_len = 868 [#7f1c95272700/16574] [is_opt_set, transport.cpp:76] DEBUG: trsp_socket::socket_options = 0x0 [#7f1c95272700/16574] [is_opt_set, transport.cpp:76] DEBUG: trsp_socket::socket_options = 0x0 [#7f1c95272700/16574] [send_reply, trans_layer.cpp:585] DEBUG: Sending to 192.168.112.5:9090 <SIP/2.0 200 OK Record-Route: <sip:192.168.112.5:9...> On Fri, Oct 3, 2014 at 9:44 AM, John Nash <[email protected]> wrote: > I have created playFile_precoded function in DSMCall.cpp (As it looked > just like playFile()) In this file i do not see sc_sess passed from core > (Thought i can see DSMCall inherits DSMSession). However in some modules I > can see use of transferOwnership(). > > Is it possible to get sc_sess in DSMCall.cpp?..Or it will be a good idea > to create one new DSM module? Regarding creating modules I could not find > any tutorial also. > > > > > > On Thu, Oct 2, 2014 at 5:55 PM, Stefan Sayer <[email protected]> > wrote: > >> John, >> >> John Nash wrote on 09/30/2014 07:06 AM: >> > I think i would need your help in this. I am facing issues while >> > trying to play .g729 file (I pasted function definition below). Looks >> > like line "file_def->getFileInstance(RTPStream()->getPayloadType());" >> > returns null value. I made sure g729 file is there in the path (For >> > test I am using a asterisk demo file). It also crashes after showing >> > error.. This is what my debug output is.. >> >> if you allocate the precoded_file instance on the stack, it's >> destroyed after the function call to DSMCall::playFile_precoded >> returns. you need to create a new object with >> 'new' and hand it over with sc_sess->transferOwnership(...) to the >> session. >> >> >> what does RTPStream()->getPayloadType() return? is that codec registered? >> >> Stefan >> >> >
_______________________________________________ Sems mailing list [email protected] http://lists.iptel.org/mailman/listinfo/sems
