Hi.

We call an extension called "netcat" which is configured in this way:

<extension name="netcat">
        <condition field="context" expression="public"/>
        <condition field="destination_number" expression="^netcat$">
                <action application="log" data="INFO extension netcat"/>
                <action application="socket" data="127.0.0.1:8085 async full"/>
        </condition>
</extension>

The inbound call is correctly routed to a netcat socket listening on localhost:8085.

When I get the socket connect, I issue the following commands:

connect
...
sendmsg
call-command: execute
execute-app-name: answer
...

sendmsg
call-command: execute
execute-app-name: bridge
execute-app-arg: sofia/external/external_number@external_domain

The bridge is done correctly but the media stream is not bidirectional:
  • Aleg can listen Bleg
  • Bleg can speak but doesn't hear Aleg
The strange thing is that if I put on hold and unhold Aleg with:

sendmsg
call-command: execute
execute-app-name: hold
..
sendmsg 
call-command: execute
execute-app-name: unhold

the media stream is recovered correctly: Aleg and Bleg can speak/listen each other.

I attach pastebin for completeness:
  • Freeswitch log: http://pastebin.freeswitch.org/pastebin.php?dl=20656
  • Outbound socket log: http://pastebin.freeswitch.org/pastebin.php?dl=20657

Thank you for your help.
Denis Gasparin