[svn-commits] mjordan: branch 12 r418756 - in /branches/12: ./ channels/ configs/ contrib/a...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Wed Jul 16 08:58:10 CDT 2014


Author: mjordan
Date: Wed Jul 16 08:58:07 2014
New Revision: 418756

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=418756
Log:
res_pjsip: Support setting a default accountcode on endpoints

Most channel drivers let you specify a default accountcode to be set on
channels associated with a particular peer/endpoint/object. Prior to this
patch, chan_pjsip/res_pjsip did not support such a setting.

This patch adds a new setting to the res_pjsip endpoint object, 'accountcode'.
When a channel is created that is associated with an endpoint with this value
set, the channel will automatically have its accountcode property set to the
value configured for the endpoint.

Review: https://reviewboard.asterisk.org/r/3724/

ASTERISK-24000 #close
Reported by: Matt Jordan

Added:
    branches/12/contrib/ast-db-manage/config/versions/1d50859ed02e_create_accountcode.py   (with props)
Modified:
    branches/12/CHANGES
    branches/12/channels/chan_pjsip.c
    branches/12/configs/pjsip.conf.sample
    branches/12/include/asterisk/res_pjsip.h
    branches/12/res/res_pjsip.c
    branches/12/res/res_pjsip/pjsip_configuration.c

Modified: branches/12/CHANGES
URL: http://svnview.digium.com/svn/asterisk/branches/12/CHANGES?view=diff&rev=418756&r1=418755&r2=418756
==============================================================================
--- branches/12/CHANGES (original)
+++ branches/12/CHANGES Wed Jul 16 08:58:07 2014
@@ -7,6 +7,17 @@
 === and the other UPGRADE files for older releases.
 ===
 ==============================================================================
+
+------------------------------------------------------------------------------
+--- Functionality changes from Asterisk 12.4.0 to Asterisk 12.5.0 ------------
+------------------------------------------------------------------------------
+
+res_pjsip
+------------------
+ * The endpoint configuration object now supports 'accountcode'. Any channel
+   created for an endpoint with this setting will have its accountcode set
+   to the specified value.
+
 
 ------------------------------------------------------------------------------
 --- Functionality changes from Asterisk 12.3.0 to Asterisk 12.4.0 ------------

Modified: branches/12/channels/chan_pjsip.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/channels/chan_pjsip.c?view=diff&rev=418756&r1=418755&r2=418756
==============================================================================
--- branches/12/channels/chan_pjsip.c (original)
+++ branches/12/channels/chan_pjsip.c Wed Jul 16 08:58:07 2014
@@ -364,8 +364,12 @@
 		return NULL;
 	}
 
-	if (!(chan = ast_channel_alloc(1, state, S_OR(session->id.number.str, ""), S_OR(session->id.name.str, ""), "", "", "", assignedids, requestor, 0, "PJSIP/%s-%08x", ast_sorcery_object_get_id(session->endpoint),
-		(unsigned)ast_atomic_fetchadd_int((int *)&chan_idx, +1)))) {
+
+	chan = ast_channel_alloc(1, state, S_OR(session->id.number.str, ""), S_OR(session->id.name.str, ""),
+	                         session->endpoint->accountcode, "", "", assignedids,
+	                         requestor, 0, "PJSIP/%s-%08x", ast_sorcery_object_get_id(session->endpoint),
+	                         (unsigned)ast_atomic_fetchadd_int((int *)&chan_idx, +1));
+	if (!chan) {
 		return NULL;
 	}
 

Modified: branches/12/configs/pjsip.conf.sample
URL: http://svnview.digium.com/svn/asterisk/branches/12/configs/pjsip.conf.sample?view=diff&rev=418756&r1=418755&r2=418756
==============================================================================
--- branches/12/configs/pjsip.conf.sample (original)
+++ branches/12/configs/pjsip.conf.sample Wed Jul 16 08:58:07 2014
@@ -435,6 +435,8 @@
 ;  SYNOPSIS: Endpoint
 ;100rel=yes     ; Allow support for RFC3262 provisional ACK tags (default:
                 ; "yes")
+;accountcode=foo        ; Set a default account code for channels created for
+                        ; this endpoint
 ;aggregate_mwi=yes      ;  (default: "yes")
 ;allow= ; Media Codec s to allow (default: "")
 ;aors=  ; AoR s to be used with the endpoint (default: "")

Added: branches/12/contrib/ast-db-manage/config/versions/1d50859ed02e_create_accountcode.py
URL: http://svnview.digium.com/svn/asterisk/branches/12/contrib/ast-db-manage/config/versions/1d50859ed02e_create_accountcode.py?view=auto&rev=418756
==============================================================================
--- branches/12/contrib/ast-db-manage/config/versions/1d50859ed02e_create_accountcode.py (added)
+++ branches/12/contrib/ast-db-manage/config/versions/1d50859ed02e_create_accountcode.py Wed Jul 16 08:58:07 2014
@@ -1,0 +1,20 @@
+"""create accountcode
+
+Revision ID: 1d50859ed02e
+Revises: 51f8cb66540e
+Create Date: 2014-07-07 21:07:01.661783
+
+"""
+
+# revision identifiers, used by Alembic.
+revision = '1d50859ed02e'
+down_revision = '51f8cb66540e'
+
+from alembic import op
+import sqlalchemy as sa
+
+def upgrade():
+    op.add_column('ps_endpoints', sa.Column('accountcode', sa.String(20)))
+
+def downgrade():
+    op.drop_column('ps_endpoints', 'accountcode')

Propchange: branches/12/contrib/ast-db-manage/config/versions/1d50859ed02e_create_accountcode.py
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: branches/12/contrib/ast-db-manage/config/versions/1d50859ed02e_create_accountcode.py
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: branches/12/contrib/ast-db-manage/config/versions/1d50859ed02e_create_accountcode.py
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: branches/12/include/asterisk/res_pjsip.h
URL: http://svnview.digium.com/svn/asterisk/branches/12/include/asterisk/res_pjsip.h?view=diff&rev=418756&r1=418755&r2=418756
==============================================================================
--- branches/12/include/asterisk/res_pjsip.h (original)
+++ branches/12/include/asterisk/res_pjsip.h Wed Jul 16 08:58:07 2014
@@ -573,6 +573,8 @@
 		AST_STRING_FIELD(fromdomain);
 		/*! Context to route incoming MESSAGE requests to */
 		AST_STRING_FIELD(message_context);
+		/*! Accountcode to auto-set on channels */
+		AST_STRING_FIELD(accountcode);
 	);
 	/*! Configuration for extensions */
 	struct ast_sip_endpoint_extensions extensions;

Modified: branches/12/res/res_pjsip.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/res/res_pjsip.c?view=diff&rev=418756&r1=418755&r2=418756
==============================================================================
--- branches/12/res/res_pjsip.c (original)
+++ branches/12/res/res_pjsip.c Wed Jul 16 08:58:07 2014
@@ -713,6 +713,13 @@
 						If specified, incoming MESSAGE requests will be routed to the indicated
 						dialplan context. If no <replaceable>message_context</replaceable> is
 						specified, then the <replaceable>context</replaceable> setting is used.
+					</para></description>
+				</configOption>
+				<configOption name="accountcode">
+					<synopsis>An accountcode to set automatically on any channels created for this endpoint.</synopsis>
+					<description><para>
+						If specified, any channel created for this endpoint will automatically
+						have this accountcode set on it.
 					</para></description>
 				</configOption>
 			</configObject>

Modified: branches/12/res/res_pjsip/pjsip_configuration.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/res/res_pjsip/pjsip_configuration.c?view=diff&rev=418756&r1=418755&r2=418756
==============================================================================
--- branches/12/res/res_pjsip/pjsip_configuration.c (original)
+++ branches/12/res/res_pjsip/pjsip_configuration.c Wed Jul 16 08:58:07 2014
@@ -1735,6 +1735,7 @@
 	ast_sorcery_object_field_register_custom(sip_sorcery, "endpoint", "redirect_method", "user", redirect_handler, NULL, NULL, 0, 0);
 	ast_sorcery_object_field_register_custom(sip_sorcery, "endpoint", "set_var", "", set_var_handler, set_var_to_str, set_var_to_vl, 0, 0);
 	ast_sorcery_object_field_register(sip_sorcery, "endpoint", "message_context", "", OPT_STRINGFIELD_T, 1, STRFLDSET(struct ast_sip_endpoint, message_context));
+	ast_sorcery_object_field_register(sip_sorcery, "endpoint", "accountcode", "", OPT_STRINGFIELD_T, 1, STRFLDSET(struct ast_sip_endpoint, accountcode));
 
 	if (ast_sip_initialize_sorcery_transport()) {
 		ast_log(LOG_ERROR, "Failed to register SIP transport support with sorcery\n");




More information about the svn-commits mailing list