signalwire / freeswitch

FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom switches to a versatile software implementation that runs on any commodity hardware. From a Raspberry PI to a multi-core server, FreeSWITCH can unlock the telecommunications potential of any device.
https://freeswitch.com/#getting-started
Other
3.5k stars 1.4k forks source link

bridge_early_media=true cause something error after uuid_transfer #1229

Open Django-xinfa opened 3 years ago

Django-xinfa commented 3 years ago

I used this command to outbound my telephone in fs_cli: originate {return_ring_ready=false,bridge_early_media=true,bypass_media=false,rtcp_mux=false,playback_terminators=none,origination_caller_id_number=1234,origination_caller_id_name=1234}sofia/external/1234@sip-server-ip:port &bridge([origination_caller_id_number=1234,origination_caller_id_name=1234,call_timeout=60]sofia/external/5678@sip-server-ip) then excute: uuid_transfer calleruuid1234 -both 'set:hangup_after_bridge=false,set:park_after_bridge=true,park:' inline next: uuid_setvar calleduuid5678 playback_delimiter=& It return "No such channel". image

After uuid_transfer, whatever uuid_setvar or uuid_break, fs_cli return "No such channel" when uuid only is calleduuid. Everything is right when I remove "bridge_early_media=true" from originate command.

There are three environments, but only one has the situation. By comparing configuration file, just found gateway file is deffrent. The error situation's gateway configuration file:

<include>
    <gateway name="gw1">
        <param name="realm" value="sip-server-ip:port"/>
        <param name="register" value="false"/>
        <param name="caller-id-in-from" value="true"/>
        <param name="ping" value="30"/> 
    </gateway>
</include>

The right situation's gateway configuration file:

<include>
  <gateway name="gw2">
  <param name="username" value="2222"/>
  <param name="password" value="1234"/>
  <param name="realm" value="sip-server-ip:port"/>
  <param name="register" value="true"/>
  <param name="caller-id-in-from" value="true"/>
  </gateway>
</include>

It is bound to happen when "bridge_early_media=true" is in originate outbound command. Why?

Django-xinfa commented 3 years ago

freeswitch version:1.10.6