From 6faf831fe51937de505f6163e13627683bb72b52 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Sat, 12 May 2007 02:09:59 +0000 Subject: [PATCH] expose a few more iax packets to the application and kindof handle them. git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5161 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- libs/iax/src/iax.c | 13 +++++++++++-- src/mod/endpoints/mod_iax/mod_iax.c | 6 ++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/libs/iax/src/iax.c b/libs/iax/src/iax.c index 12e8289c50..0639f2effb 100644 --- a/libs/iax/src/iax.c +++ b/libs/iax/src/iax.c @@ -1586,7 +1586,7 @@ static struct iax_event *handle_event(struct iax_event *event) case IAX_EVENT_POKE: event->etype = IAX_EVENT_PONG; iax_send_pong(event->session, event->ts); - destroy_session(event->session); + iax_destroy(event->session); iax_event_free(event); break; default: @@ -2683,7 +2683,8 @@ static struct iax_event *iax_header_to_event(struct iax_session *session, case IAX_COMMAND_POKE: e->etype = IAX_EVENT_POKE; e->ts = ts; - break; case IAX_COMMAND_PING: + break; + case IAX_COMMAND_PING: /* PINGS and PONGS don't get scheduled; */ e->etype = IAX_EVENT_PING; e->ts = ts; @@ -2718,6 +2719,14 @@ static struct iax_event *iax_header_to_event(struct iax_session *session, } e = schedule_delivery(e, ts, updatehistory); break; + case IAX_COMMAND_REGREQ: + e->etype = IAX_EVENT_REGREQ; + e = schedule_delivery(e, ts, updatehistory); + break; + case IAX_COMMAND_REGREL: + e->etype = IAX_EVENT_REGREQ; + e = schedule_delivery(e, ts, updatehistory); + break; case IAX_COMMAND_REGACK: e->etype = IAX_EVENT_REGACK; e = schedule_delivery(e, ts, updatehistory); diff --git a/src/mod/endpoints/mod_iax/mod_iax.c b/src/mod/endpoints/mod_iax/mod_iax.c index 417484e137..ecb12e5c8b 100644 --- a/src/mod/endpoints/mod_iax/mod_iax.c +++ b/src/mod/endpoints/mod_iax/mod_iax.c @@ -1036,6 +1036,12 @@ SWITCH_MOD_DECLARE(switch_status_t) switch_module_runtime(void) case IAX_EVENT_REGREJ: switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Registration failed.\n"); break; + case IAX_EVENT_REGREQ: + /* what is the right way to handle this? */ + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Registration request ignored, not implemented.\n"); + iax_destroy(iaxevent->session); + iaxevent->session = NULL; + break; case IAX_EVENT_TIMEOUT: break; case IAX_EVENT_ACCEPT: