Hi

I am running one opensips with rtpengine

opensips -V
version: opensips 3.2.9 (x86_64/linux)
flags: STATS: On, DISABLE_NAGLE, USE_MCAST, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, HP_MALLOC, DBG_MALLOC, FAST_LOCK-ADAPTIVE_WAIT ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535
poll method support: poll, epoll, sigio_rt, select.
main.c compiled on  with gcc 8

And have issue with attendend transfer:
Here is the basic scenario:
A calls B
B puts A on hold (A listens to MOH)
B makes  second call C and C answers

So far all good, B and C can talk, but now when I want to transfer A to C,
opensips receives REFER and replies with "202 Accepted"

However now I dont know how to connect media with A and C
A is still listening to MOH and C has silence.


Here is the part that handles REFER and MOH

route[handle_sequential]
{
if(has_totag() &&is_method("REFER") &&loose_route()) {
xlog("Route: handle_sequential | method: $rm | call_transfer | rt $rt");
append_to_reply("Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY\r\n");
append_to_reply("Supported: timer, path, replaces\r\n");
append_to_reply("Allow-Events: talk, hold, conference, refer\r\n");
append_to_reply("Contact: <sip:[email protected]:5060>\r\n");
append_to_reply("Expires: 60\r\n");
append_to_reply("User-Agent: rtpengine\r\n");
send_reply(202, "Accepted");
exit;
     }
if(is_method("INVITE") &&has_totag()) {
if(is_audio_on_hold()) {
xlog("Start playing MusicOnHold");
xlog("request code: $rc");
$var(on_hold) ="1";
append_hf("SDP-Rewritten: MOH\r\n");
rtpengine_play_media("from-tag=$tt file=/etc/opensips/music/moh1.wav");
rtpengine_manage("RTP/AVP replace-session-connection replace-origin trust-address ICE=remove");
        }
else{
$var(on_hold) ="0";
xlog("Stop playing MusicOnHold: var(on_hold): $var(on_hold)");
rtpengine_stop_media("from-tag=$tt");
append_hf("SDP-Rewritten: Return from MOH\r\n");
rtpengine_manage("RTP/AVP replace-session-connection replace-origin trust-address ICE=remove");
        }
    } else{}...
}


I tried also with b2b_logic but I obviusly dont have enough knowledge to make it work by myself
Can you please give me a hint how to proceed?
Or if anyone has a working example, what part of code is missing here?

Thank you
BR
Simon


--
This email has been checked for viruses by Avast antivirus software.
www.avast.com
_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to