[asterisk-commits] file: branch group/pimp_my_sip r379427 - in /team/group/pimp_my_sip: channels...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Jan 18 07:45:32 CST 2013


Author: file
Date: Fri Jan 18 07:45:29 2013
New Revision: 379427

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=379427
Log:
Use connection information from the main SDP if stream level is not available, and use extension as provided by res_sip_session when starting the PBX.

Modified:
    team/group/pimp_my_sip/channels/chan_gulp.c
    team/group/pimp_my_sip/res/res_sip_sdp_audio.c

Modified: team/group/pimp_my_sip/channels/chan_gulp.c
URL: http://svnview.digium.com/svn/asterisk/team/group/pimp_my_sip/channels/chan_gulp.c?view=diff&rev=379427&r1=379426&r2=379427
==============================================================================
--- team/group/pimp_my_sip/channels/chan_gulp.c (original)
+++ team/group/pimp_my_sip/channels/chan_gulp.c Fri Jan 18 07:45:29 2013
@@ -99,6 +99,7 @@
 
 /*! \brief SIP session supplement structure */
 static struct ast_sip_session_supplement gulp_supplement = {
+	.method = "INVITE",
 	.incoming_request = gulp_incoming_request,
 };
 
@@ -464,31 +465,14 @@
 /*! \brief Function called when a request is received on the session */
 static int gulp_incoming_request(struct ast_sip_session *session, struct pjsip_rx_data *rdata)
 {
-	pjsip_uri *ruri = rdata->msg_info.msg->line.req.uri;
-	char exten[AST_MAX_EXTENSION] = "";
 	int res = AST_PBX_FAILED;
 
 	/* We only care about new sessions */
-	if ((rdata->msg_info.msg->line.req.method.id != PJSIP_INVITE_METHOD) ||
-	    (session->channel)) {
+	if (session->channel) {
 		return 0;
 	}
 
-	if (PJSIP_URI_SCHEME_IS_SIP(ruri) || PJSIP_URI_SCHEME_IS_SIPS(ruri)) {
-		pjsip_sip_uri *sipRuri = pjsip_uri_get_uri(ruri);
-
-		snprintf(exten, sizeof(exten), "%.*s", (int) pj_strlen(&sipRuri->user), pj_strbuf(&sipRuri->user));
-	} else {
-		pjsip_tx_data *packet = NULL;
-
-		if (pjsip_inv_end_session(session->inv_session, 416, NULL, &packet) == PJ_SUCCESS) {
-			ast_sip_session_send_response(session, packet);
-		}
-
-		return -1;
-	}
-
-	if (!(session->channel = gulp_new(session, AST_STATE_DOWN, exten, NULL, NULL, NULL))) {
+	if (!(session->channel = gulp_new(session, AST_STATE_DOWN, session->exten, NULL, NULL, NULL))) {
 		pjsip_tx_data *packet = NULL;
 
 		if (pjsip_inv_end_session(session->inv_session, 503, NULL, &packet) == PJ_SUCCESS) {

Modified: team/group/pimp_my_sip/res/res_sip_sdp_audio.c
URL: http://svnview.digium.com/svn/asterisk/team/group/pimp_my_sip/res/res_sip_sdp_audio.c?view=diff&rev=379427&r1=379426&r2=379427
==============================================================================
--- team/group/pimp_my_sip/res/res_sip_sdp_audio.c (original)
+++ team/group/pimp_my_sip/res/res_sip_sdp_audio.c Fri Jan 18 07:45:29 2013
@@ -111,8 +111,11 @@
 		return -1;
 	}
 
-	/* For now use stream level connection details - once the SDP itself is passed in we can use it if not present */
-	snprintf(host, sizeof(host), "%.*s", (int) pj_strlen(&stream->conn->addr), pj_strbuf(&stream->conn->addr));
+	if (!stream->conn) {
+		snprintf(host, sizeof(host), "%.*s", (int) pj_strlen(&sdp->conn->addr), pj_strbuf(&sdp->conn->addr));
+	} else {
+		snprintf(host, sizeof(host), "%.*s", (int) pj_strlen(&stream->conn->addr), pj_strbuf(&stream->conn->addr));
+	}
 
 	/* Ensure that the address provided is valid */
 	if ((addrs_cnt = ast_sockaddr_resolve(&addrs, host, PARSE_PORT_FORBID, AST_AF_UNSPEC)) <= 0) {




More information about the asterisk-commits mailing list