<html><head></head><body bgcolor="#FFFFFF"><span class="Apple-style-span" style="font-family: '.Helvetica NeueUI'; font-size: 18px; line-height: 24px; -webkit-composition-fill-color: rgba(130, 98, 83, 0.09375); -webkit-composition-frame-color: rgba(191, 107, 82, 0.496094); -webkit-text-size-adjust: none; -webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); "><div><br></div><div>OpenSIPs operating as a b2bua with topology hiding.</div><div><br></div><div>My SIP softphone (which uses OpenSIPs as an outbound proxy) receives an incoming call, and I answer it.</div><div><br></div><div>I then try to transfer the call using the MI below:</div><div><br></div><div>:b2b_bridge:</div><div>1020.30</div><div>sip:<a href="mailto:07987654321@85.1.2.3">07987654321@85.1.2.3</a></div><div>1</div><div><br></div><div>This results in "ERROR:b2b_logic:mi_b2b_bridge: No entity found". What am I doing wrong?</div><div><br></div><div><br></div><div>DBG:mi_datagram:mi_datagram_server: received :b2b_bridge:#0121020.30#012sip:07987654321@85.1.2.3#0120#012</div><div>DBG:mi_datagram:mi_datagram_server: mi_buf is :b2b_bridge:#0121020.30#012sip:07987654321@85.1.2.3#0120#012 and we have received 53 bytes</div><div>DBG:mi_datagram:identify_command: the command starts here: b2b_bridge:#0121020.30#012sip:07987654321@85.1.2.3#0120#012</div><div>DBG:mi_datagram:identify_command: the command is b2b_bridge</div><div>DBG:mi_datagram:identify_command: dtgram-&gt;len is 53</div><div>DBG:mi_datagram:identify_command: dtgram-&gt;len is 40</div><div>DBG:mi_datagram:mi_datagram_server: we have a valid command&nbsp;</div><div>DBG:mi_datagram:mi_datagram_server: after identifing the command, the received datagram is 1020.30#012sip:07987654321@85.1.2.3#0120#012</div><div>DBG:mi_datagram:mi_datagram_server: parsing the command's params</div><div>DBG:mi_datagram:mi_datagram_parse_node: the remaining datagram to be parsed is 1020.30#012sip:07987654321@85.1.2.3#0120#012 and 40 in length&nbsp;</div><div>DBG:mi_datagram:mi_datagram_parse_node: the string is not just a quoted string</div><div>DBG:mi_datagram:mi_datagram_parse_node: found newline before attr_separator--we have just the attribute's value</div><div>DBG:mi_datagram:mi_datagram_parse_node: empty name, attr not quoted value &lt;1020.30&gt; found</div><div>DBG:mi_datagram:mi_datagram_parse_node: 1 data-&gt;len is 40</div><div>DBG:mi_datagram:mi_datagram_parse_node: 2 data-&gt;len is 32</div><div>DBG:mi_datagram:mi_datagram_parse_tree: adding node &lt;&gt; ; val &lt;1020.30&gt;</div><div>DBG:mi_datagram:mi_datagram_parse_tree: the remaining datagram has 32 bytes</div><div>DBG:mi_datagram:mi_datagram_parse_node: the remaining datagram to be parsed is sip:07987654321@85.1.2.3#0120#012 and 32 in length&nbsp;</div><div>DBG:mi_datagram:mi_datagram_parse_node: the string is not just a quoted string</div><div>DBG:mi_datagram:mi_datagram_parse_node: found newline before attr_separator--we have just the attribute's value</div><div>DBG:mi_datagram:mi_datagram_parse_node: empty name, attr not quoted value &lt;sip:<a href="mailto:07987654321@85.1.2.3">07987654321@85.1.2.3</a>&gt; found</div><div>DBG:mi_datagram:mi_datagram_parse_node: 1 data-&gt;len is 32</div><div>DBG:mi_datagram:mi_datagram_parse_node: 2 data-&gt;len is 2</div><div>DBG:mi_datagram:mi_datagram_parse_tree: adding node &lt;&gt; ; val &lt;sip:<a href="mailto:07987654321@85.1.2.3">07987654321@85.1.2.3</a>&gt;</div><div>DBG:mi_datagram:mi_datagram_parse_tree: the remaining datagram has 2 bytes</div><div>DBG:mi_datagram:mi_datagram_parse_node: the remaining datagram to be parsed is 0#012 and 2 in length&nbsp;</div><div>DBG:mi_datagram:mi_datagram_parse_node: the string is not just a quoted string</div><div>DBG:mi_datagram:mi_datagram_parse_node: just a value, no new line</div><div>DBG:mi_datagram:mi_datagram_parse_node: empty name, attr not quoted value &lt;0&gt; found</div><div>DBG:mi_datagram:mi_datagram_parse_node: 1 data-&gt;len is 2</div><div>DBG:mi_datagram:mi_datagram_parse_node: 2 data-&gt;len is 0</div><div>DBG:mi_datagram:mi_datagram_parse_tree: adding node &lt;&gt; ; val &lt;0&gt;</div><div>DBG:mi_datagram:mi_datagram_parse_tree: the remaining datagram has 0 bytes</div><div>DBG:mi_datagram:mi_datagram_parse_tree: found end of input</div><div>DBG:mi_datagram:mi_datagram_server: done parsing the mi tree</div><div>DBG:b2b_logic:b2bl_parse_key: hash_index = [1020] &nbsp;- local_index= [30]</div><div>DBG:b2b_logic:b2bl_create_new_entity: new entity type [1] [0x7f9901a49350]-&gt;[]</div><div>ERROR:b2b_logic:mi_b2b_bridge: No entity found</div><div><br></div><div><br></div><div><br></div><div><br></div><div>debug=6</div><div>log_stderror=no</div><div>log_facility=LOG_LOCAL0</div><div>fork=yes</div><div>children=4</div><div><br></div><div>listen=udp:192.168.1.64:5060</div><div><br></div><div><br></div><div><br></div><div>####### Modules Section ########</div><div><br></div><div>#set module path</div><div>mpath="/usr//lib64/opensips/modules/"</div><div><br></div><div>#### SIGNALING module</div><div>loadmodule "signaling.so"</div><div><br></div><div>#### StateLess module</div><div>loadmodule "sl.so"</div><div><br></div><div>#### Transaction Module</div><div>loadmodule "tm.so"</div><div>modparam("tm", "fr_timeout", 5)</div><div>modparam("tm", "fr_inv_timeout", 30)</div><div>modparam("tm", "restart_fr_on_each_reply", 0)</div><div>modparam("tm", "onreply_avp_mode", 1)</div><div><br></div><div>#### Record Route Module</div><div>loadmodule "rr.so"</div><div>/* do not append from tag to the RR (no need for this script) */</div><div>modparam("rr", "append_fromtag", 0)</div><div><br></div><div>#### MAX ForWarD module</div><div>loadmodule "maxfwd.so"</div><div><br></div><div>#### SIP MSG OPerationS module</div><div>loadmodule "sipmsgops.so"</div><div><br></div><div>#### FIFO Management Interface</div><div>loadmodule "mi_fifo.so"</div><div>modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")</div><div>modparam("mi_fifo", "fifo_mode", 0666)</div><div><br></div><div>#### URI module</div><div>loadmodule "uri.so"</div><div>modparam("uri", "use_uri_table", 0)</div><div><br></div><div>#### USeR LOCation module</div><div>loadmodule "usrloc.so"</div><div>modparam("usrloc", "nat_bflag", "NAT")</div><div>modparam("usrloc", "db_mode", &nbsp; 0)</div><div><br></div><div>#### REGISTRAR module</div><div>loadmodule "registrar.so"</div><div><br></div><div>/* uncomment the next line not to allow more than 10 contacts per AOR */</div><div>#modparam("registrar", "max_contacts", 10)</div><div><br></div><div>#### ACCounting module</div><div>#loadmodule "acc.so"</div><div>#/* what special events should be accounted ? */</div><div>#modparam("acc", "early_media", 0)</div><div>#modparam("acc", "report_cancels", 0)</div><div>#/* by default we do not adjust the direct of the sequential requests.</div><div># &nbsp; if you enable this parameter, be sure the enable "append_fromtag"</div><div># &nbsp; in "rr" module */</div><div>#modparam("acc", "detect_direction", 0)</div><div>#modparam("acc", "failed_transaction_flag", "ACC_FAILED")</div><div>#/* account triggers (flags) */</div><div>#modparam("acc", "log_flag", "ACC_DO")</div><div>#modparam("acc", "log_missed_flag", "ACC_MISSED")</div><div><br></div><div>#### UDP protocol</div><div>loadmodule "proto_udp.so"</div><div><br></div><div><br></div><div><br></div><div><br></div><div>loadmodule "b2b_entities.so"</div><div>loadmodule "b2b_logic.so"</div><div><br></div><div>modparam("b2b_entities", "script_req_route", "b2b_request")</div><div>modparam("b2b_entities", "script_reply_route", "b2b_reply")</div><div><br></div><div>modparam("tm","onreply_avp_mode", 1)</div><div>modparam("tm", "pass_provisional_replies", 1)</div><div><br></div><div>loadmodule "mi_datagram.so"</div><div>&nbsp;modparam("mi_datagram", "socket_name", "udp:192.168.1.64:8070")</div><div><br></div><div><br></div><div>####### Routing Logic ########</div><div><br></div><div><br></div><div>route[b2b_request]</div><div>{</div><div>raise_event("E_SCRIPT_CALL_B2BREQUEST");</div><div>}</div><div>route[b2b_reply]</div><div>{</div><div>raise_event("E_SCRIPT_CALL_B2BREPLY");</div><div>}</div><div><br></div><div>route</div><div>{</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>if (!mf_process_maxfwd_header("10"))&nbsp;</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>{</div><div><span class="Apple-tab-span" style="white-space: pre; ">                </span>sl_send_reply("483","Too Many Hops");</div><div><span class="Apple-tab-span" style="white-space: pre; ">                </span>exit;</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>}</div><div><br></div><div><br></div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span># record routing</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>if (!is_method("REGISTER"))</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>{</div><div><span class="Apple-tab-span" style="white-space: pre; ">                </span>record_route();</div><div>&nbsp; &nbsp; &nbsp; &nbsp; }</div><div><br></div><div><br></div><div><br></div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>if (is_method("INVITE") &amp;&amp; !(src_ip == "192.168.1.64" &amp;&amp; src_port==5060))</div><div>&nbsp;&nbsp;<span class="Apple-tab-span" style="white-space: pre; ">        </span>{</div><div><span class="Apple-tab-span" style="white-space: pre; ">                </span>b2b_init_request("top hiding");</div><div><span class="Apple-tab-span" style="white-space: pre; ">                </span>exit;</div><div>&nbsp;&nbsp;<span class="Apple-tab-span" style="white-space: pre; ">        </span>}&nbsp;</div><div><br></div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>route(1);</div><div><br></div><div>}</div><div><br></div><div><br></div><div><br></div><div>route[1]</div><div>{</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>if (!t_relay())</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>{</div><div><span class="Apple-tab-span" style="white-space: pre; ">                </span>sl_reply_error();</div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>}</div><div><br></div><div><span class="Apple-tab-span" style="white-space: pre; ">        </span>exit;</div><div>}</div></span></body></html>