First, try this init(Node) -> {foo, Node} ! register_event_handler, {event, Node} ! {event, 'ALL'}. register_event_handler will tell FS to send all events back to the *current* process, so you can get all events by using flush(). 2) If you want to coming events send to a dedicated PID, spawn a process and then send the following message in that process {foo, Node} ! register_event_handler, IN your case, you might want this: loop() -> {foo, Node} ! register_event_handler, {event, Node} ! {event, 'ALL'}, receive stop -> ok; _Anything -> io:format("received ~p~n", [_Anything]), loop() end. 3) Anyway, try read the freeswitch.erl in the source tree to understand more. -- Seven Du Sent with Sparrow (http://www.sparrowmailapp.com/?sig) On Monday, December 31, 2012 at 9:12 PM, Gerald Weber wrote:
Some more infos:
Changed the init/1 function to:
init(Node) -> {foo, Node} ! register_event_handler, {foo, Node} ! register_log_handler, {foo, Node} ! {event, 'ALL'}, {foo, Node} ! {set_log_level, debug}.
Now the „invalid process type“ error message disappeared, but i still dont get any events.
Some erlang console command outputs:
freeswitch@fstest> erlang listeners
Listener to test33@freeswitch.besharp.at (mailto:test33@freeswitch.besharp.at) with 0 outbound sessions
freeswitch@fstest> erlang bindings
No bindings
freeswitch@fstest> erlang handlers
Listener test33@freeswitch.besharp.at (mailto:test33@freeswitch.besharp.at): -------------------------------- CLONE CHANNEL_CREATE CHANNEL_DESTROY CHANNEL_STATE CHANNEL_CALLSTATE CHANNEL_ANSWER CHANNEL_HANGUP CHANNEL_HANGUP_COMPLETE CHANNEL_EXECUTE CHANNEL_EXECUTE_COMPLETE CHANNEL_HOLD CHANNEL_UNHOLD CHANNEL_BRIDGE CHANNEL_UNBRIDGE CHANNEL_PROGRESS CHANNEL_PROGRESS_MEDIA CHANNEL_OUTGOING CHANNEL_PARK CHANNEL_UNPARK CHANNEL_APPLICATION CHANNEL_ORIGINATE CHANNEL_UUID API LOG INBOUND_CHAN OUTBOUND_CHAN STARTUP SHUTDOWN PUBLISH UNPUBLISH TALK NOTALK SESSION_CRASH MODULE_LOAD MODULE_UNLOAD DTMF MESSAGE PRESENCE_IN NOTIFY_IN PRESENCE_OUT PRESENCE_PROBE MESSAGE_WAITING MESSAGE_QUERY ROSTER CODEC BACKGROUND_JOB DETECTED_SPEECH DETECTED_TONE PRIVATE_COMMAND HEARTBEAT TRAP ADD_SCHEDULE DEL_SCHEDULE EXE_SCHEDULE RE_SCHEDULE RELOADXML NOTIFY SEND_MESSAGE RECV_MESSAGE REQUEST_PARAMS CHANNEL_DATA GENERAL COMMAND SESSION_HEARTBEAT CLIENT_DISCONNECTED SERVER_DISCONNECTED SEND_INFO RECV_INFO RECV_RTCP_MESSAGE CALL_SECURE NAT RECORD_START RECORD_STOP PLAYBACK_START PLAYBACK_STOP CALL_UPDATE FAILURE SOCKET_DATA MEDIA_BUG_START MEDIA_BUG_STOP CONFERENCE_DATA_QUERY CONFERENCE_DATA CALL_SETUP_REQ CALL_SETUP_RESULT CUSTOM:
Thanks gw
Von: freeswitch-users-bounces@lists.freeswitch.org [mailto:freeswitch-users-bounces@lists.freeswitch.org] Im Auftrag von Gerald Weber Gesendet: Montag, 31. Dezember 2012 13:30 An: freeswitch-users@lists.freeswitch.org (mailto:freeswitch-users@lists.freeswitch.org) Betreff: [Freeswitch-users] mod_event_erlang and invalid process type
Hi all,
trying to learn erlang i tried to connect to freeswitch using mod_event_erlang and receive some events:
erlang shell:
[root@fstest ~]# erl -name test33@freeswitch.besharp.at (mailto:test33@freeswitch.besharp.at) -setcookie ClueCon Erlang R15B03 (erts-5.9.3.1) [source] [64-bit] [smp:2:2] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.9.3.1 (abort with ^G) (test33@freeswitch.besharp.at)1 (mailto:test33@freeswitch.besharp.at)1)> Pid = fsevents:start(). <0.46.0> (test33@freeswitch.besharp.at)2 (mailto:test33@freeswitch.besharp.at)2)> fsevents:init('freeswitch@freeswitch.besharp.at (mailto:freeswitch@freeswitch.besharp.at)'). {event,'ALL'} (test33@freeswitch.besharp.at)3 (mailto:test33@freeswitch.besharp.at)3)>
Console output:
2012-12-31 13:18:36.900506 [DEBUG] handle_msg.c:301 ALL events enabled 2012-12-31 13:18:36.900506 [DEBUG] handle_msg.c:314 enable event ALL 2012-12-31 13:18:51.480577 [ERR] ei_helpers.c:274 Invalid process type 0! ((null),, <0.0.0>) 2012-12-31 13:18:51.480577 [ERR] ei_helpers.c:274 Invalid process type 0! ((null),, <0.0.0>) 2012-12-31 13:18:51.500492 [ERR] ei_helpers.c:274 Invalid process type 0! ((null),, <0.0.0>)
Can anyone tell me what i’m doing wrong ? Console log keeps saying invalid process type (until i kill the erlang process) and i dont receive any events.
Erlang Version: 5.9.3.1 Freeswitch: latest HEAD from 2012-12-31
The fsevents module:
-module(fsevents). -export([start/0, init/1, loop/0]).
start() -> Pid = spawn(?MODULE, loop, []), register(?MODULE,Pid), Pid.
init(Node) -> {foo, Node} ! {event, 'ALL'}.
loop() -> receive stop -> ok; _Anything -> io:format("received ~p~n", [_Anything]), loop() end.
The communication seems to work basically:
(test33@freeswitch.besharp.at)4 (mailto:test33@freeswitch.besharp.at)4)> {foo, freeswitch@freeswitch.besharp.at (mailto:freeswitch@freeswitch.besharp.at)} ! {api, status, ""}. {api,status,[]} (test33@freeswitch.besharp.at)5 (mailto:test33@freeswitch.besharp.at)5)> receive Y -> Y after 1000 -> timeout end. {ok,"UP 0 years, 0 days, 1 hour, 20 minutes, 52 seconds, 534 milliseconds, 225 microseconds\nFreeSWITCH (Version 1.3.13b git 8859eb0 2012-12-30 19:08:55Z) is ready\n0 session(s) since startup\n0 session(s) - 0 out of max 30 per sec \n1000 session(s) max\nmin idle cpu 0.00/99.00\nCurrent Stack Size/Max 240K/8192K\n"} (test33@freeswitch.besharp.at)3 (mailto:test33@freeswitch.besharp.at)3)>
Console output:
freeswitch@fstest> load mod_erlang_event 2012-12-31 13:17:21.420611 [INFO] mod_enum.c:872 ENUM Reloaded 2012-12-31 13:17:21.420611 [INFO] switch_time.c:1165 Timezone reloaded 530 definitions 2012-12-31 13:17:21.420611 [DEBUG] mod_erlang_event.c:1816 sections 16 2012-12-31 13:17:21.420611 [CONSOLE] switch_loadable_module.c:1348 Successfully Loaded [mod_erlang_event] 2012-12-31 13:17:21.420611 [NOTICE] switch_loadable_module.c:254 Adding Application 'erlang' 2012-12-31 13:17:21.420611 [NOTICE] switch_loadable_module.c:254 Adding Application 'erlang_sendmsg' 2012-12-31 13:17:21.420611 [NOTICE] switch_loadable_module.c:298 Adding API Function 'erlang'
+OK Reloading XML +OK
2012-12-31 13:17:21.420611 [DEBUG] mod_erlang_event.c:1915 Socket 48 up listening on 0.0.0.0:8031 2012-12-31 13:17:21.420611 [DEBUG] mod_erlang_event.c:1946 Connected to epmd and published erlang cnode at freeswitch@freeswitch.besharp.at (mailto:freeswitch@freeswitch.besharp.at) freeswitch@fstest> 2012-12-31 13:17:43.380527 [DEBUG] mod_erlang_event.c:1986 Launching listener, connection from node test33@freeswitch.besharp.at (mailto:test33@freeswitch.besharp.at), ip 192.168.20.73 2012-12-31 13:17:43.380527 [DEBUG] mod_erlang_event.c:1009 Connection Open from 192.168.20.73
Thanks / regards and Happy New Year J Gw
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org (mailto:consulting@freeswitch.org) http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org (mailto:FreeSWITCH-users@lists.freeswitch.org) http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org