[Freeswitch-users] PHP ESL Problem

Alberto Escudero aep.lists at it46.se
Sat Jan 2 10:08:38 PST 2010


I do not know if really helps you but we are facing the same problem in
one of our implementations using the ESL.so for PHP.

We have only see this problem when subscribing to the CHANNEL_STATE

getType() should always match EventName... but it does not
./aep

-- 
Stopping junk mailers is good for the environment

> Would someone please take a look at this simple PHP event socket script
> and
> tell me what I am doing wrong - or tell me that this could be a bug
> elsewhere?  Any help would be appreciated.
>
> When I run the script without the call to execute(), everything seems
> fine.
> When I include the call to execute(), the calls to getType() return CUSTOM
> for a while, then later start to return the correct name.
>
> #!/usr/bin/php
> <?php
> require_once 'ESL.php';
> $endPoint = 'sofia/internal/695%192.168.100.132';
>
> $eventSocket = New ESLconnection('192.168.100.132', '8021', 'ClueCon');
> $event = $eventSocket->events('plain', 'ALL');
>
> // call endpoint, get uuid
> $event = $eventSocket->api('originate', $endPoint . ' &park');
> $serializedEvent = explode("\n", $event->serialize());
> foreach ($serializedEvent as $eventLine) {
>     list($dummy, $uuid) = explode('+OK ', $eventLine);
>     if ($uuid) { break; }
> }
>
> // play announcement to endpoint
> $event = $eventSocket->execute('playback', '/opt/ann/user-busy.wav',
> $uuid);
>
> // monitor events
> while (TRUE) {
>     echo "getType: " . $event->getType() . "\n";
>     $serializedEvent = explode("\n", $event->serialize());
>     foreach ($serializedEvent as $eventLine) {
>         list($header, $value) = explode(': ', $eventLine);
>         if ($header == "Event-Name")   { printf($eventLine . "\n"); }
>         if ($header == "Content-Type") { printf($eventLine . "\n"); }
>     }
>
> 	printf("\n");
>     $event = $eventSocket->recvEvent();
> }?>
>
>
> Run without the call to execute():
> ==================================
> getType: CUSTOM
> Content-Type: api/response
>
> getType: CHANNEL_CREATE
> Event-Name: CHANNEL_CREATE
>
> getType: CHANNEL_OUTGOING
> Event-Name: CHANNEL_OUTGOING
>
> getType: CHANNEL_ORIGINATE
> Event-Name: CHANNEL_ORIGINATE
>
> getType: CHANNEL_STATE
> Event-Name: CHANNEL_STATE
>
> getType: PRESENCE_IN
> Event-Name: PRESENCE_IN
>
> getType: CHANNEL_STATE
> Event-Name: CHANNEL_STATE
>
> getType: PRESENCE_IN
> Event-Name: PRESENCE_IN
>
> getType: CHANNEL_STATE
> Event-Name: CHANNEL_STATE
>
> getType: CALL_UPDATE
> Event-Name: CALL_UPDATE
>
> getType: CHANNEL_PROGRESS
> Event-Name: CHANNEL_PROGRESS
>
> getType: HEARTBEAT
> Event-Name: HEARTBEAT
>
> getType: HEARTBEAT
> Event-Name: RE_SCHEDULE
>
> getType: CALL_UPDATE
> Event-Name: CALL_UPDATE
>
> getType: CODEC
> Event-Name: CODEC
>
> getType: CODEC
> Event-Name: CODEC
>
> getType: CHANNEL_ANSWER
> Event-Name: CHANNEL_ANSWER
>
> getType: PRESENCE_IN
> Event-Name: PRESENCE_IN
>
> getType: API
> Event-Name: API
>
> getType: PRESENCE_IN
> Event-Name: PRESENCE_IN
>
> getType: CHANNEL_STATE
> Event-Name: CHANNEL_STATE
>
> getType: CHANNEL_EXECUTE
> Event-Name: CHANNEL_EXECUTE
>
> getType: CHANNEL_PARK
> Event-Name: CHANNEL_PARK
>
> getType: CHANNEL_HANGUP
> Event-Name: CHANNEL_HANGUP
>
> getType: CHANNEL_UNPARK
> Event-Name: CHANNEL_UNPARK
>
> getType: CHANNEL_EXECUTE_COMPLETE
> Event-Name: CHANNEL_EXECUTE_COMPLETE
>
> getType: PRESENCE_IN
> Event-Name: PRESENCE_IN
>
> getType: CHANNEL_STATE
> Event-Name: CHANNEL_STATE
>
> getType: PRESENCE_IN
> Event-Name: PRESENCE_IN
>
> getType: CHANNEL_HANGUP_COMPLETE
> Event-Name: CHANNEL_HANGUP_COMPLETE
>
> getType: CHANNEL_STATE
> Event-Name: CHANNEL_STATE
>
> getType: CHANNEL_DESTROY
> Event-Name: CHANNEL_DESTROY
>
> getType: CHANNEL_STATE
> Event-Name: CHANNEL_STATE
>
>
> Run with the call to execute():
> ===============================
> getType: CUSTOM
> Content-Type: command/reply
>
> getType: CUSTOM
> Content-Type: text/event-plain
> Event-Name: CHANNEL_CREATE
>
> getType: CUSTOM
> Content-Type: text/event-plain
> Event-Name: CHANNEL_OUTGOING
>
> getType: CUSTOM
> Content-Type: text/event-plain
> Event-Name: CHANNEL_ORIGINATE
>
> getType: CUSTOM
> Content-Type: text/event-plain
> Event-Name: CHANNEL_STATE
>
> getType: CUSTOM
> Content-Type: text/event-plain
> Event-Name: PRESENCE_IN
>
> getType: CUSTOM
> Content-Type: text/event-plain
> Event-Name: CHANNEL_STATE
>
> getType: CUSTOM
> Content-Type: text/event-plain
> Event-Name: PRESENCE_IN
>
> getType: CUSTOM
> Content-Type: text/event-plain
> Event-Name: CHANNEL_STATE
>
> getType: CUSTOM
> Content-Type: text/event-plain
> Event-Name: CALL_UPDATE
>
> getType: CUSTOM
> Content-Type: text/event-plain
> Event-Name: CHANNEL_PROGRESS
>
> getType: CUSTOM
> Content-Type: text/event-plain
> Event-Name: CALL_UPDATE
>
> getType: CUSTOM
> Content-Type: text/event-plain
> Event-Name: CODEC
>
> getType: CUSTOM
> Content-Type: text/event-plain
> Event-Name: CODEC
>
> getType: CUSTOM
> Content-Type: text/event-plain
> Event-Name: CHANNEL_ANSWER
>
> getType: CUSTOM
> Content-Type: text/event-plain
> Event-Name: PRESENCE_IN
>
> getType: CUSTOM
> Content-Type: text/event-plain
> Event-Name: API
>
> getType: CUSTOM
> Content-Type: text/event-plain
> Event-Name: PRESENCE_IN
>
> getType: CUSTOM
> Content-Type: text/event-plain
> Event-Name: CHANNEL_STATE
>
> getType: CUSTOM
> Content-Type: text/event-plain
> Event-Name: CHANNEL_EXECUTE
>
> getType: CUSTOM
> Content-Type: text/event-plain
> Event-Name: CHANNEL_PARK
>
> getType: CHANNEL_EXECUTE
> Event-Name: CHANNEL_EXECUTE
>
> getType: CHANNEL_HANGUP
> Event-Name: CHANNEL_HANGUP
>
> getType: CHANNEL_EXECUTE_COMPLETE
> Event-Name: CHANNEL_EXECUTE_COMPLETE
>
> getType: COMMAND
> Event-Name: COMMAND
>
> getType: CHANNEL_UNPARK
> Event-Name: CHANNEL_UNPARK
>
> getType: CHANNEL_EXECUTE_COMPLETE
> Event-Name: CHANNEL_EXECUTE_COMPLETE
>
> getType: PRESENCE_IN
> Event-Name: PRESENCE_IN
>
> getType: CHANNEL_STATE
> Event-Name: CHANNEL_STATE
>
> getType: PRESENCE_IN
> Event-Name: PRESENCE_IN
>
> getType: CHANNEL_HANGUP_COMPLETE
> Event-Name: CHANNEL_HANGUP_COMPLETE
>
> getType: CHANNEL_STATE
> Event-Name: CHANNEL_STATE
>
> getType: CHANNEL_DESTROY
> Event-Name: CHANNEL_DESTROY
>
> getType: CHANNEL_STATE
> Event-Name: CHANNEL_STATE
>
>
> Thanks,
> Ron
>
>
>
> _______________________________________________
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
>






More information about the FreeSWITCH-users mailing list