[Freeswitch-users] mod_event_erlang and invalid process type
Gerald Weber
gerald.weber at besharp.at
Wed Jan 2 13:27:10 MSK 2013
Thanks for your answer, it’s working now ☺
Von: freeswitch-users-bounces at lists.freeswitch.org [mailto:freeswitch-users-bounces at lists.freeswitch.org] Im Auftrag von Seven Du
Gesendet: Dienstag, 01. Jänner 2013 02:06
An: FreeSWITCH Users Help
Betreff: Re: [Freeswitch-users] mod_event_erlang and invalid process type
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 at fstest> erlang listeners
Listener to test33 at freeswitch.besharp.at<mailto:test33 at freeswitch.besharp.at> with 0 outbound sessions
freeswitch at fstest> erlang bindings
No bindings
freeswitch at fstest> erlang handlers
Listener test33 at freeswitch.besharp.at<mailto:test33 at 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 at lists.freeswitch.org<mailto:freeswitch-users-bounces at lists.freeswitch.org> [mailto:freeswitch-users-bounces at lists.freeswitch.org] Im Auftrag von Gerald Weber
Gesendet: Montag, 31. Dezember 2012 13:30
An: freeswitch-users at lists.freeswitch.org<mailto:freeswitch-users at 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 at fstest ~]# erl -name test33 at freeswitch.besharp.at<mailto:test33 at 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 at freeswitch.besharp.at)1<mailto:test33 at freeswitch.besharp.at)1>> Pid = fsevents:start().
<0.46.0>
(test33 at freeswitch.besharp.at)2<mailto:test33 at freeswitch.besharp.at)2>> fsevents:init('freeswitch at freeswitch.besharp.at<mailto:freeswitch at freeswitch.besharp.at>').
{event,'ALL'}
(test33 at freeswitch.besharp.at)3<mailto:test33 at 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 at freeswitch.besharp.at)4<mailto:test33 at freeswitch.besharp.at)4>> {foo, freeswitch at freeswitch.besharp.at<mailto:freeswitch at freeswitch.besharp.at>} ! {api, status, ""}.
{api,status,[]}
(test33 at freeswitch.besharp.at)5<mailto:test33 at 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 at freeswitch.besharp.at)3<mailto:test33 at freeswitch.besharp.at)3>>
Console output:
freeswitch at 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 at freeswitch.besharp.at<mailto:freeswitch at freeswitch.besharp.at>
freeswitch at fstest> 2012-12-31 13:17:43.380527 [DEBUG] mod_erlang_event.c:1986 Launching listener, connection from node test33 at freeswitch.besharp.at<mailto:test33 at 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 ☺
Gw
_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting at freeswitch.org<mailto:consulting at freeswitch.org>
http://www.freeswitchsolutions.com
Official FreeSWITCH Sites
http://www.freeswitch.org
http://wiki.freeswitch.org
http://www.cluecon.com
FreeSWITCH-users mailing list
FreeSWITCH-users at lists.freeswitch.org<mailto: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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20130102/7e1bcdb8/attachment-0001.html
Join us at ClueCon 2011 Aug 9-11, 2011
More information about the FreeSWITCH-users
mailing list