[svn-commits] file: branch group/pimp_my_sip r379427 - in /team/group/pimp_my_sip: channels...
SVN commits to the Digium repositories
svn-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 svn-commits
mailing list