Ok, this was trivial, I forgot to put b2b_handle_reply .... :-)
On 18/06/2021 11:06, johan wrote: > Hi, > > it seems to me that I don't grasp b2bua. > > The purpose of this script is very simple : > > - handle registration > > - on receiving an invite then put the 2 entities in contact with each > other. > > > For some reason, b2bua can't route the reply. > > > Log: > > Jun 18 04:55:20 debian10opensips31 /data/opensips/sbin/opensips[3041]: > route[0] INVITE sip:[email protected];transport=UDP > SIP/2.0#015#012Via: SIP/2.0/UDP > 192.168.68.104:44072;branch=z9hG4bK-524287-1---519c17eab6690bb8;rport#015#012Max-Forwards: > 70#015#012Contact: > <sip:[email protected]:44072;transport=UDP>#015#012To: > <sip:[email protected]>#015#012From: > <sip:[email protected];transport=UDP>;tag=8e780c78#015#012Call-ID: > ywvufmDkg195whyiReyxBw..#015#012CSeq: 1 INVITE#015#012Allow: INVITE, > ACK, CANCEL, BYE, NOTIFY, REFER, MESSAGE, OPTIONS, INFO, > SUBSCRIBE#015#012Content-Type: application/sdp#015#012User-Agent: Zoiper > rv2.10.12.3-mod#015#012Allow-Events: presence, kpml, > talk#015#012Content-Length: 185#015#012#015#012v=0#015#012o=Zoiper > 1624006519564 1 IN IP4 192.168.68.104#015#012s=Z#015#012c=IN IP4 > 192.168.68.104#015#012t=0 0#015#012m=audio 44128 RTP/AVP 0 101 > 8#015#012a=rtpmap:101 telephone-event/8000#015#012a=fmtp:101 > 0-16#015#012a=sendrecv#015 > Jun 18 04:55:20 debian10opensips31 /data/opensips/sbin/opensips[3041]: > INFO:b2b_logic:b2bl_add_client: adding entity > [0x7f8e0f112f88]->[B2B.274.5538153.1624006520] to tuple > [0x7f8e0f10cd48]->[274.0] > Jun 18 04:55:20 debian10opensips31 /data/opensips/sbin/opensips[3041]: > route[0] INVITE sip:[email protected] SIP/2.0#015#012Via: SIP/2.0/UDP > 192.168.68.115:5060;branch=z9hG4bKba3f.67a6a393.0#015#012To: > sip:[email protected]:38419#015#012From: > <sip:[email protected];transport=UDP>;tag=29b4ae0b3643070a47d5f40529fb2fbd-cdb7#015#012CSeq: > 2 INVITE#015#012Call-ID: B2B.274.5538153.1624006520#015#012Max-Forwards: > 70#015#012Content-Length: 185#015#012User-Agent: OpenSIPS (3.2.0-beta > (x86_64/linux))#015#012Content-Type: application/sdp#015#012Allow: > INVITE, ACK, CANCEL, BYE, NOTIFY, REFER, MESSAGE, OPTIONS, INFO, > SUBSCRIBE#015#012Contact: > <sip:192.168.68.115>#015#012#015#012v=0#015#012o=Zoiper 1624006519564 1 > IN IP4 192.168.68.104#015#012s=Z#015#012c=IN IP4 > 192.168.68.104#015#012t=0 0#015#012m=audio 44128 RTP/AVP 0 101 > 8#015#012a=rtpmap:101 telephone-event/8000#015#012a=fmtp:101 > 0-16#015#012a=sendrecv#015 > Jun 18 04:55:20 debian10opensips31 /data/opensips/sbin/opensips[3041]: > INFO:b2b_logic:b2bl_add_client: adding entity > [0x7f8e0f119368]->[B2B.274.5538153.1624006520] to tuple > [0x7f8e0f1131c8]->[274.1] > Jun 18 04:55:21 debian10opensips31 /data/opensips/sbin/opensips[3040]: > callid=B2B.274.5538153.1624006520: route[b2b_reply]: incoming reply mb > [SIP/2.0 180 Ringing#015#012Via: SIP/2.0/UDP > 192.168.68.115:5060;branch=z9hG4bKca3f.1c958c27.0#015#012Contact: > <sip:[email protected]:38419>#015#012To: > <sip:[email protected]:38419>;tag=1095d332#015#012From: > <sip:[email protected];transport=UDP>;tag=29b4ae0b3643070a47d5f40529fb2fbd-cdb7#015#012Call-ID: > B2B.274.5538153.1624006520#015#012CSeq: 3 INVITE#015#012Allow: INVITE, > ACK, CANCEL, BYE, NOTIFY, REFER, MESSAGE, OPTIONS, INFO, > SUBSCRIBE#015#012User-Agent: Z 5.3.8 rv2.9.30-mod#015#012Allow-Events: > presence, kpml, talk#015#012Content-Length: 0#015#012#015#012] > Jun 18 04:55:23 debian10opensips31 /data/opensips/sbin/opensips[3041]: > INFO:b2b_logic:b2b_add_dlginfo: Dialog pair: > [B2B.274.5538153.1624006520] - [B2B.274.5538153.1624006520] > Jun 18 04:55:23 debian10opensips31 /data/opensips/sbin/opensips[3041]: > callid=B2B.274.5538153.1624006520: route[b2b_reply]: incoming reply mb > [SIP/2.0 200 OK#015#012Via: SIP/2.0/UDP > 192.168.68.115:5060;branch=z9hG4bKca3f.1c958c27.0#015#012Contact: > <sip:[email protected]:38419>#015#012To: > <sip:[email protected]:38419>;tag=1095d332#015#012From: > <sip:[email protected];transport=UDP>;tag=29b4ae0b3643070a47d5f40529fb2fbd-cdb7#015#012Call-ID: > B2B.274.5538153.1624006520#015#012CSeq: 3 INVITE#015#012Allow: INVITE, > ACK, CANCEL, BYE, NOTIFY, REFER, MESSAGE, OPTIONS, INFO, > SUBSCRIBE#015#012Content-Type: application/sdp#015#012User-Agent: Z > 5.3.8 rv2.9.30-mod#015#012Allow-Events: presence, kpml, > talk#015#012Content-Length: 165#015#012#015#012v=0#015#012o=Z 0 1 IN IP4 > 192.168.68.109#015#012s=Z#015#012c=IN IP4 192.168.68.109#015#012t=0 > 0#015#012m=audio 8000 RTP/AVP 8 101#015#012a=rtpmap:101 > telephone-event/8000#015#012a=fmtp:101 0-16#015#012a=sendrecv#015#012] > > johan@debian10opensips31:~$ > > > Script below: > > ####### Global Parameters ######### > > /* uncomment the following lines to enable debugging */ > #debug_mode=yes > > log_level=3 > log_stderror=no > log_facility=LOG_LOCAL0 > > udp_workers=4 > > /* uncomment the next line to enable the auto temporary blacklisting of > not available destinations (default disabled) */ > #disable_dns_blacklist=no > > /* uncomment the next line to enable IPv6 lookup after IPv4 dns > lookup failures (default disabled) */ > #dns_try_ipv6=yes > > socket=udp:*:5060 > > ####### Modules Section ######## > #set module path > mpath="/data/opensips/lib64/opensips/modules/" > > #### SIGNALING module > loadmodule "signaling.so" > > #### StateLess module > loadmodule "sl.so" > > #### Transaction Module > loadmodule "tm.so" > modparam("tm", "fr_timeout", 5) > modparam("tm", "fr_inv_timeout", 30) > modparam("tm", "restart_fr_on_each_reply", 0) > modparam("tm", "onreply_avp_mode", 1) > > > #### MAX ForWarD module > loadmodule "maxfwd.so" > > #### SIP MSG OPerationS module > loadmodule "sipmsgops.so" > > #### FIFO Management Interface > loadmodule "mi_fifo.so" > modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo") > modparam("mi_fifo", "fifo_mode", 0666) > > #### USeR LOCation module > loadmodule "usrloc.so" > modparam("usrloc", "nat_bflag", "NAT") > modparam("usrloc", "working_mode_preset", "single-instance-no-db") > > #### REGISTRAR module > loadmodule "registrar.so" > modparam("registrar", "tcp_persistent_flag", "TCP_PERSISTENT") > > loadmodule "proto_udp.so" > > loadmodule "mi_datagram.so" > loadmodule "event_datagram.so" > modparam("mi_datagram", "socket_name", "udp:127.0.0.1:8080") > loadmodule "b2b_entities.so" > loadmodule "b2b_logic.so" > modparam("b2b_logic", "script_req_route", "b2b_logic_request") > modparam("b2b_logic", "script_reply_route", "b2b_reply") > > #### cfgutils > loadmodule "cfgutils.so" > #### textops > loadmodule "textops.so" > #### nathelper > loadmodule "nathelper.so" > #### rr > loadmodule "rr.so" > ####### Routing Logic ######## > > # main request routing logic > > route > { > xlog("route[0] $mb"); > if (!mf_process_maxfwd_header(10)) > { > send_reply(483,"Too Many Hops"); > exit; > } > > # preloaded route checking > if (loose_route()) > { > xlog("LOOSE ROUTING $mb"); > route(relay); > } > > > # requests for my domain > if (is_method("PUBLISH|SUBSCRIBE")) > { > send_reply(503, "Service Unavailable"); > exit; > } > > if (is_method("REGISTER")) > { > if (!save("location")) > sl_reply_error(); > exit; > } > if ($rU==NULL) > { > # request with no Username in RURI > send_reply(484,"Address Incomplete"); > exit; > } > > lookup("location","m"); > > if (is_method("INVITE") && !has_totag()) { > > # create the server entity > b2b_server_new("caller",$fu); > # create the initial client entity, to connect the caller with > the callee > b2b_client_new("callee", $tu); > # initialize B2B session for the "refer" scenario > b2b_init_request("refer"); > } > } > > > route[b2b_logic_request] > { > xlog("callid=$ci: route b2b logic request: received message $mb"); > > if ($rm != "REFER") { > # for requests other than REFER, no special actions needs to be > done, > # just pass the request to the peer > > b2b_pass_request(); > exit; > } > > # end dialog with the referrer > b2b_send_reply(202, "Accepted"); > b2b_end_dlg_leg(); > > # create the client entity corresponding to > # the user specified in the 'Refer-To' header > b2b_client_new("referee", $hdr(Refer-To)); > > # bridge the referrer's peer with the referee > b2b_bridge("peer", "referee"); > } > > route[b2b_reply] > { > xlog("callid=$ci: route[b2b_reply]: incoming reply mb [$mb]\n"); > } > > route[relay] { > # send it out now; use stateful forwarding as it works reliably > # even for UDP2TCP > xlog("callid=$ci: route[relay]: incoming message mb [$mb]\n"); > if (!t_relay()) { > sl_reply_error(); > }; > exit; > } > > Can somebody please give a hint on what I am doing wrong ? > > > wkr, > > > _______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users
