Author: mmichelson
Date: Tue Jul 30 13:14:50 2013
New Revision: 395764

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=395764
Log:
The large GULP->PJSIP renaming effort.

The general gist is to have a clear boundary between old SIP stuff
and new SIP stuff by having the word "SIP" for old stuff and "PJSIP"
for new stuff. Here's a brief rundown of the changes:

* The word "Gulp" in dialstrings, functions, and CLI commands is now
  "PJSIP"
* chan_gulp.c is now chan_pjsip.c
* Function names in chan_gulp.c that were "gulp_*" are now "chan_pjsip_*"
* All files that were "res_sip*" are now "res_pjsip*"
* The "res_sip" directory is now "res_pjsip"
* Files in the "res_pjsip" directory that began with "sip_*" are now "pjsip_*"
* The configuration file is now "pjsip.conf" instead of "res_sip.conf"
* The module info for all PJSIP-related files now uses "PJSIP" instead of "SIP"
* CLI and AMI commands created by Asterisk's PJSIP modules now have "pjsip" as
the starting word instead of "sip"


Added:
    trunk/channels/chan_pjsip.c
      - copied, changed from r395748, trunk/channels/chan_gulp.c
    trunk/configs/pjsip.conf.sample
      - copied unchanged from r395747, trunk/configs/res_sip.conf.sample
    trunk/include/asterisk/res_pjsip.h
      - copied unchanged from r395748, trunk/include/asterisk/res_sip.h
    trunk/include/asterisk/res_pjsip_exten_state.h
      - copied unchanged from r395747, 
trunk/include/asterisk/res_sip_exten_state.h
    trunk/include/asterisk/res_pjsip_pubsub.h
      - copied unchanged from r395747, trunk/include/asterisk/res_sip_pubsub.h
    trunk/include/asterisk/res_pjsip_session.h
      - copied unchanged from r395747, trunk/include/asterisk/res_sip_session.h
    trunk/res/res_pjsip/
    trunk/res/res_pjsip.c
      - copied, changed from r395748, trunk/res/res_sip.c
    trunk/res/res_pjsip.exports.in
      - copied unchanged from r395748, trunk/res/res_sip.exports.in
    trunk/res/res_pjsip/config_auth.c   (with props)
    trunk/res/res_pjsip/config_domain_aliases.c   (with props)
    trunk/res/res_pjsip/config_global.c   (with props)
    trunk/res/res_pjsip/config_security.c   (with props)
    trunk/res/res_pjsip/config_system.c   (with props)
    trunk/res/res_pjsip/config_transport.c   (with props)
    trunk/res/res_pjsip/include/
    trunk/res/res_pjsip/include/res_pjsip_private.h   (with props)
    trunk/res/res_pjsip/location.c   (with props)
    trunk/res/res_pjsip/pjsip_configuration.c   (with props)
    trunk/res/res_pjsip/pjsip_distributor.c   (with props)
    trunk/res/res_pjsip/pjsip_global_headers.c   (with props)
    trunk/res/res_pjsip/pjsip_options.c   (with props)
    trunk/res/res_pjsip/pjsip_outbound_auth.c   (with props)
    trunk/res/res_pjsip/security_events.c   (with props)
    trunk/res/res_pjsip_acl.c
      - copied, changed from r395747, trunk/res/res_sip_acl.c
    trunk/res/res_pjsip_authenticator_digest.c
      - copied, changed from r395748, trunk/res/res_sip_authenticator_digest.c
    trunk/res/res_pjsip_caller_id.c
      - copied, changed from r395748, trunk/res/res_sip_caller_id.c
    trunk/res/res_pjsip_diversion.c
      - copied, changed from r395748, trunk/res/res_sip_diversion.c
    trunk/res/res_pjsip_dtmf_info.c
      - copied, changed from r395747, trunk/res/res_sip_dtmf_info.c
    trunk/res/res_pjsip_endpoint_identifier_anonymous.c
      - copied, changed from r395747, 
trunk/res/res_sip_endpoint_identifier_anonymous.c
    trunk/res/res_pjsip_endpoint_identifier_constant.c
      - copied, changed from r395747, 
trunk/res/res_sip_endpoint_identifier_constant.c
    trunk/res/res_pjsip_endpoint_identifier_ip.c
      - copied, changed from r395747, trunk/res/res_sip_endpoint_identifier_ip.c
    trunk/res/res_pjsip_endpoint_identifier_user.c
      - copied, changed from r395747, 
trunk/res/res_sip_endpoint_identifier_user.c
    trunk/res/res_pjsip_exten_state.c
      - copied, changed from r395747, trunk/res/res_sip_exten_state.c
    trunk/res/res_pjsip_exten_state.exports.in
      - copied unchanged from r395747, trunk/res/res_sip_exten_state.exports.in
    trunk/res/res_pjsip_logger.c
      - copied, changed from r395747, trunk/res/res_sip_logger.c
    trunk/res/res_pjsip_messaging.c
      - copied, changed from r395748, trunk/res/res_sip_messaging.c
    trunk/res/res_pjsip_mwi.c
      - copied, changed from r395748, trunk/res/res_sip_mwi.c
    trunk/res/res_pjsip_nat.c
      - copied, changed from r395748, trunk/res/res_sip_nat.c
    trunk/res/res_pjsip_notify.c
      - copied, changed from r395747, trunk/res/res_sip_notify.c
    trunk/res/res_pjsip_one_touch_record_info.c
      - copied, changed from r395748, trunk/res/res_sip_one_touch_record_info.c
    trunk/res/res_pjsip_outbound_authenticator_digest.c
      - copied, changed from r395748, 
trunk/res/res_sip_outbound_authenticator_digest.c
    trunk/res/res_pjsip_outbound_registration.c
      - copied, changed from r395748, trunk/res/res_sip_outbound_registration.c
    trunk/res/res_pjsip_pidf.c
      - copied, changed from r395747, trunk/res/res_sip_pidf.c
    trunk/res/res_pjsip_pubsub.c
      - copied, changed from r395748, trunk/res/res_sip_pubsub.c
    trunk/res/res_pjsip_pubsub.exports.in
      - copied unchanged from r395747, trunk/res/res_sip_pubsub.exports.in
    trunk/res/res_pjsip_refer.c
      - copied, changed from r395747, trunk/res/res_sip_refer.c
    trunk/res/res_pjsip_registrar.c
      - copied, changed from r395747, trunk/res/res_sip_registrar.c
    trunk/res/res_pjsip_registrar_expire.c
      - copied, changed from r395747, trunk/res/res_sip_registrar_expire.c
    trunk/res/res_pjsip_rfc3326.c
      - copied, changed from r395747, trunk/res/res_sip_rfc3326.c
    trunk/res/res_pjsip_sdp_rtp.c
      - copied, changed from r395748, trunk/res/res_sip_sdp_rtp.c
    trunk/res/res_pjsip_session.c
      - copied, changed from r395748, trunk/res/res_sip_session.c
    trunk/res/res_pjsip_session.exports.in
      - copied unchanged from r395747, trunk/res/res_sip_session.exports.in
    trunk/res/res_pjsip_t38.c
      - copied, changed from r395748, trunk/res/res_sip_t38.c
    trunk/res/res_pjsip_transport_websocket.c
      - copied, changed from r395747, trunk/res/res_sip_transport_websocket.c
Removed:
    trunk/channels/chan_gulp.c
    trunk/configs/res_sip.conf.sample
    trunk/include/asterisk/res_sip.h
    trunk/include/asterisk/res_sip_exten_state.h
    trunk/include/asterisk/res_sip_pubsub.h
    trunk/include/asterisk/res_sip_session.h
    trunk/res/res_sip/
    trunk/res/res_sip.c
    trunk/res/res_sip.exports.in
    trunk/res/res_sip_acl.c
    trunk/res/res_sip_authenticator_digest.c
    trunk/res/res_sip_caller_id.c
    trunk/res/res_sip_diversion.c
    trunk/res/res_sip_dtmf_info.c
    trunk/res/res_sip_endpoint_identifier_anonymous.c
    trunk/res/res_sip_endpoint_identifier_constant.c
    trunk/res/res_sip_endpoint_identifier_ip.c
    trunk/res/res_sip_endpoint_identifier_user.c
    trunk/res/res_sip_exten_state.c
    trunk/res/res_sip_exten_state.exports.in
    trunk/res/res_sip_logger.c
    trunk/res/res_sip_messaging.c
    trunk/res/res_sip_mwi.c
    trunk/res/res_sip_nat.c
    trunk/res/res_sip_notify.c
    trunk/res/res_sip_one_touch_record_info.c
    trunk/res/res_sip_outbound_authenticator_digest.c
    trunk/res/res_sip_outbound_registration.c
    trunk/res/res_sip_pidf.c
    trunk/res/res_sip_pubsub.c
    trunk/res/res_sip_pubsub.exports.in
    trunk/res/res_sip_refer.c
    trunk/res/res_sip_registrar.c
    trunk/res/res_sip_registrar_expire.c
    trunk/res/res_sip_rfc3326.c
    trunk/res/res_sip_sdp_rtp.c
    trunk/res/res_sip_session.c
    trunk/res/res_sip_session.exports.in
    trunk/res/res_sip_t38.c
    trunk/res/res_sip_transport_websocket.c
Modified:
    trunk/res/Makefile

Copied: trunk/channels/chan_pjsip.c (from r395748, trunk/channels/chan_gulp.c)
URL: 
http://svnview.digium.com/svn/asterisk/trunk/channels/chan_pjsip.c?view=diff&rev=395764&p1=trunk/channels/chan_gulp.c&r1=395748&p2=trunk/channels/chan_pjsip.c&r2=395764
==============================================================================
--- trunk/channels/chan_gulp.c (original)
+++ trunk/channels/chan_pjsip.c Tue Jul 30 13:14:50 2013
@@ -20,15 +20,15 @@
  *
  * \author Joshua Colp <[email protected]>
  *
- * \brief Gulp SIP Channel Driver
+ * \brief PSJIP SIP Channel Driver
  *
  * \ingroup channel_drivers
  */
 
 /*** MODULEINFO
        <depend>pjproject</depend>
-       <depend>res_sip</depend>
-       <depend>res_sip_session</depend>
+       <depend>res_pjsip</depend>
+       <depend>res_pjsip_session</depend>
        <support_level>core</support_level>
  ***/
 
@@ -58,11 +58,11 @@
 #include "asterisk/stasis_channels.h"
 #include "asterisk/indications.h"
 
-#include "asterisk/res_sip.h"
-#include "asterisk/res_sip_session.h"
+#include "asterisk/res_pjsip.h"
+#include "asterisk/res_pjsip_session.h"
 
 /*** DOCUMENTATION
-       <function name="GULP_DIAL_CONTACTS" language="en_US">
+       <function name="PJSIP_DIAL_CONTACTS" language="en_US">
                <synopsis>
                        Return a dial string for dialing all contacts on an AOR.
                </synopsis>
@@ -81,7 +81,7 @@
                        <para>Returns a properly formatted dial string for 
dialing all contacts on an AOR.</para>
                </description>
        </function>
-       <function name="GULP_MEDIA_OFFER" language="en_US">
+       <function name="PJSIP_MEDIA_OFFER" language="en_US">
                <synopsis>
                        Media and codec offerings to be set on an outbound SIP 
channel prior to dialing.
                </synopsis>
@@ -96,8 +96,8 @@
        </function>
  ***/
 
-static const char desc[] = "Gulp SIP Channel";
-static const char channel_type[] = "Gulp";
+static const char desc[] = "PJSIP Channel";
+static const char channel_type[] = "PJSIP";
 
 static unsigned int chan_idx;
 
@@ -113,13 +113,13 @@
        SIP_MEDIA_SIZE,
 };
 
-struct gulp_pvt {
+struct chan_pjsip_pvt {
        struct ast_sip_session_media *media[SIP_MEDIA_SIZE];
 };
 
-static void gulp_pvt_dtor(void *obj)
-{
-       struct gulp_pvt *pvt = obj;
+static void chan_pjsip_pvt_dtor(void *obj)
+{
+       struct chan_pjsip_pvt *pvt = obj;
        int i;
 
        for (i = 0; i < SIP_MEDIA_SIZE; ++i) {
@@ -129,70 +129,70 @@
 }
 
 /* \brief Asterisk core interaction functions */
-static struct ast_channel *gulp_request(const char *type, struct 
ast_format_cap *cap, const struct ast_channel *requestor, const char *data, int 
*cause);
-static int gulp_sendtext(struct ast_channel *ast, const char *text);
-static int gulp_digit_begin(struct ast_channel *ast, char digit);
-static int gulp_digit_end(struct ast_channel *ast, char digit, unsigned int 
duration);
-static int gulp_call(struct ast_channel *ast, const char *dest, int timeout);
-static int gulp_hangup(struct ast_channel *ast);
-static int gulp_answer(struct ast_channel *ast);
-static struct ast_frame *gulp_read(struct ast_channel *ast);
-static int gulp_write(struct ast_channel *ast, struct ast_frame *f);
-static int gulp_indicate(struct ast_channel *ast, int condition, const void 
*data, size_t datalen);
-static int gulp_transfer(struct ast_channel *ast, const char *target);
-static int gulp_fixup(struct ast_channel *oldchan, struct ast_channel 
*newchan);
-static int gulp_devicestate(const char *data);
-static int gulp_queryoption(struct ast_channel *ast, int option, void *data, 
int *datalen);
+static struct ast_channel *chan_pjsip_request(const char *type, struct 
ast_format_cap *cap, const struct ast_channel *requestor, const char *data, int 
*cause);
+static int chan_pjsip_sendtext(struct ast_channel *ast, const char *text);
+static int chan_pjsip_digit_begin(struct ast_channel *ast, char digit);
+static int chan_pjsip_digit_end(struct ast_channel *ast, char digit, unsigned 
int duration);
+static int chan_pjsip_call(struct ast_channel *ast, const char *dest, int 
timeout);
+static int chan_pjsip_hangup(struct ast_channel *ast);
+static int chan_pjsip_answer(struct ast_channel *ast);
+static struct ast_frame *chan_pjsip_read(struct ast_channel *ast);
+static int chan_pjsip_write(struct ast_channel *ast, struct ast_frame *f);
+static int chan_pjsip_indicate(struct ast_channel *ast, int condition, const 
void *data, size_t datalen);
+static int chan_pjsip_transfer(struct ast_channel *ast, const char *target);
+static int chan_pjsip_fixup(struct ast_channel *oldchan, struct ast_channel 
*newchan);
+static int chan_pjsip_devicestate(const char *data);
+static int chan_pjsip_queryoption(struct ast_channel *ast, int option, void 
*data, int *datalen);
 
 /*! \brief PBX interface structure for channel registration */
-static struct ast_channel_tech gulp_tech = {
+static struct ast_channel_tech chan_pjsip_tech = {
        .type = channel_type,
-       .description = "Gulp SIP Channel Driver",
-       .requester = gulp_request,
-       .send_text = gulp_sendtext,
-       .send_digit_begin = gulp_digit_begin,
-       .send_digit_end = gulp_digit_end,
-       .call = gulp_call,
-       .hangup = gulp_hangup,
-       .answer = gulp_answer,
-       .read = gulp_read,
-       .write = gulp_write,
-       .write_video = gulp_write,
-       .exception = gulp_read,
-       .indicate = gulp_indicate,
-       .transfer = gulp_transfer,
-       .fixup = gulp_fixup,
-       .devicestate = gulp_devicestate,
-       .queryoption = gulp_queryoption,
+       .description = "PJSIP Channel Driver",
+       .requester = chan_pjsip_request,
+       .send_text = chan_pjsip_sendtext,
+       .send_digit_begin = chan_pjsip_digit_begin,
+       .send_digit_end = chan_pjsip_digit_end,
+       .call = chan_pjsip_call,
+       .hangup = chan_pjsip_hangup,
+       .answer = chan_pjsip_answer,
+       .read = chan_pjsip_read,
+       .write = chan_pjsip_write,
+       .write_video = chan_pjsip_write,
+       .exception = chan_pjsip_read,
+       .indicate = chan_pjsip_indicate,
+       .transfer = chan_pjsip_transfer,
+       .fixup = chan_pjsip_fixup,
+       .devicestate = chan_pjsip_devicestate,
+       .queryoption = chan_pjsip_queryoption,
        .properties = AST_CHAN_TP_WANTSJITTER | AST_CHAN_TP_CREATESJITTER
 };
 
 /*! \brief SIP session interaction functions */
-static void gulp_session_begin(struct ast_sip_session *session);
-static void gulp_session_end(struct ast_sip_session *session);
-static int gulp_incoming_request(struct ast_sip_session *session, struct 
pjsip_rx_data *rdata);
-static void gulp_incoming_response(struct ast_sip_session *session, struct 
pjsip_rx_data *rdata);
+static void chan_pjsip_session_begin(struct ast_sip_session *session);
+static void chan_pjsip_session_end(struct ast_sip_session *session);
+static int chan_pjsip_incoming_request(struct ast_sip_session *session, struct 
pjsip_rx_data *rdata);
+static void chan_pjsip_incoming_response(struct ast_sip_session *session, 
struct pjsip_rx_data *rdata);
 
 /*! \brief SIP session supplement structure */
-static struct ast_sip_session_supplement gulp_supplement = {
+static struct ast_sip_session_supplement chan_pjsip_supplement = {
        .method = "INVITE",
        .priority = AST_SIP_SESSION_SUPPLEMENT_PRIORITY_CHANNEL,
-       .session_begin = gulp_session_begin,
-       .session_end = gulp_session_end,
-       .incoming_request = gulp_incoming_request,
-       .incoming_response = gulp_incoming_response,
+       .session_begin = chan_pjsip_session_begin,
+       .session_end = chan_pjsip_session_end,
+       .incoming_request = chan_pjsip_incoming_request,
+       .incoming_response = chan_pjsip_incoming_response,
 };
 
-static int gulp_incoming_ack(struct ast_sip_session *session, struct 
pjsip_rx_data *rdata);
-
-static struct ast_sip_session_supplement gulp_ack_supplement = {
+static int chan_pjsip_incoming_ack(struct ast_sip_session *session, struct 
pjsip_rx_data *rdata);
+
+static struct ast_sip_session_supplement chan_pjsip_ack_supplement = {
        .method = "ACK",
        .priority = AST_SIP_SESSION_SUPPLEMENT_PRIORITY_CHANNEL,
-       .incoming_request = gulp_incoming_ack,
+       .incoming_request = chan_pjsip_incoming_ack,
 };
 
 /*! \brief Dialplan function for constructing a dial string for calling all 
contacts */
-static int gulp_dial_contacts(struct ast_channel *chan, const char *cmd, char 
*data, char *buf, size_t len)
+static int chan_pjsip_dial_contacts(struct ast_channel *chan, const char *cmd, 
char *data, char *buf, size_t len)
 {
        RAII_VAR(struct ast_sip_endpoint *, endpoint, NULL, ao2_cleanup);
        RAII_VAR(struct ast_str *, dial, NULL, ast_free_ptr);
@@ -247,7 +247,7 @@
 
                it_contacts = ao2_iterator_init(contacts, 0);
                for (; (contact = ao2_iterator_next(&it_contacts)); 
ao2_ref(contact, -1)) {
-                       ast_str_append(&dial, -1, "Gulp/");
+                       ast_str_append(&dial, -1, "PJSIP/");
 
                        if (!ast_strlen_zero(args.request_user)) {
                                ast_str_append(&dial, -1, "%s@", 
args.request_user);
@@ -265,9 +265,9 @@
        return 0;
 }
 
-static struct ast_custom_function gulp_dial_contacts_function = {
-       .name = "GULP_DIAL_CONTACTS",
-       .read = gulp_dial_contacts,
+static struct ast_custom_function chan_pjsip_dial_contacts_function = {
+       .name = "PJSIP_DIAL_CONTACTS",
+       .read = chan_pjsip_dial_contacts,
 };
 
 static int media_offer_read_av(struct ast_sip_session *session, char *buf,
@@ -285,7 +285,7 @@
                name = ast_getformatname(&fmt);
 
                if (ast_strlen_zero(name)) {
-                       ast_log(LOG_WARNING, "GULP_MEDIA_OFFER unrecognized 
format %s\n", name);
+                       ast_log(LOG_WARNING, "PJSIP_MEDIA_OFFER unrecognized 
format %s\n", name);
                        continue;
                }
 
@@ -364,16 +364,16 @@
 }
 
 static struct ast_custom_function media_offer_function = {
-       .name = "GULP_MEDIA_OFFER",
+       .name = "PJSIP_MEDIA_OFFER",
        .read = media_offer_read,
        .write = media_offer_write
 };
 
 /*! \brief Function called by RTP engine to get local audio RTP peer */
-static enum ast_rtp_glue_result gulp_get_rtp_peer(struct ast_channel *chan, 
struct ast_rtp_instance **instance)
+static enum ast_rtp_glue_result chan_pjsip_get_rtp_peer(struct ast_channel 
*chan, struct ast_rtp_instance **instance)
 {
        struct ast_sip_channel_pvt *channel = ast_channel_tech_pvt(chan);
-       struct gulp_pvt *pvt = channel->pvt;
+       struct chan_pjsip_pvt *pvt = channel->pvt;
        struct ast_sip_endpoint *endpoint;
 
        if (!pvt || !channel->session || !pvt->media[SIP_MEDIA_AUDIO]->rtp) {
@@ -398,10 +398,10 @@
 }
 
 /*! \brief Function called by RTP engine to get local video RTP peer */
-static enum ast_rtp_glue_result gulp_get_vrtp_peer(struct ast_channel *chan, 
struct ast_rtp_instance **instance)
+static enum ast_rtp_glue_result chan_pjsip_get_vrtp_peer(struct ast_channel 
*chan, struct ast_rtp_instance **instance)
 {
        struct ast_sip_channel_pvt *channel = ast_channel_tech_pvt(chan);
-       struct gulp_pvt *pvt = channel->pvt;
+       struct chan_pjsip_pvt *pvt = channel->pvt;
        struct ast_sip_endpoint *endpoint;
 
        if (!pvt || !channel->session || !pvt->media[SIP_MEDIA_VIDEO]->rtp) {
@@ -422,7 +422,7 @@
 }
 
 /*! \brief Function called by RTP engine to get peer capabilities */
-static void gulp_get_codec(struct ast_channel *chan, struct ast_format_cap 
*result)
+static void chan_pjsip_get_codec(struct ast_channel *chan, struct 
ast_format_cap *result)
 {
        struct ast_sip_channel_pvt *channel = ast_channel_tech_pvt(chan);
 
@@ -492,7 +492,7 @@
 }
 
 /*! \brief Function called by RTP engine to change where the remote party 
should send media */
-static int gulp_set_rtp_peer(struct ast_channel *chan,
+static int chan_pjsip_set_rtp_peer(struct ast_channel *chan,
                struct ast_rtp_instance *rtp,
                struct ast_rtp_instance *vrtp,
                struct ast_rtp_instance *tpeer,
@@ -500,7 +500,7 @@
                int nat_active)
 {
        struct ast_sip_channel_pvt *channel = ast_channel_tech_pvt(chan);
-       struct gulp_pvt *pvt = channel->pvt;
+       struct chan_pjsip_pvt *pvt = channel->pvt;
        struct ast_sip_session *session = channel->session;
        int changed = 0;
        struct ast_channel *bridge_peer;
@@ -545,32 +545,32 @@
 }
 
 /*! \brief Local glue for interacting with the RTP engine core */
-static struct ast_rtp_glue gulp_rtp_glue = {
-       .type = "Gulp",
-       .get_rtp_info = gulp_get_rtp_peer,
-       .get_vrtp_info = gulp_get_vrtp_peer,
-       .get_codec = gulp_get_codec,
-       .update_peer = gulp_set_rtp_peer,
+static struct ast_rtp_glue chan_pjsip_rtp_glue = {
+       .type = "PJSIP",
+       .get_rtp_info = chan_pjsip_get_rtp_peer,
+       .get_vrtp_info = chan_pjsip_get_vrtp_peer,
+       .get_codec = chan_pjsip_get_codec,
+       .update_peer = chan_pjsip_set_rtp_peer,
 };
 
-/*! \brief Function called to create a new Gulp Asterisk channel */
-static struct ast_channel *gulp_new(struct ast_sip_session *session, int 
state, const char *exten, const char *title, const char *linkedid, const char 
*cid_name)
+/*! \brief Function called to create a new PJSIP Asterisk channel */
+static struct ast_channel *chan_pjsip_new(struct ast_sip_session *session, int 
state, const char *exten, const char *title, const char *linkedid, const char 
*cid_name)
 {
        struct ast_channel *chan;
        struct ast_format fmt;
-       RAII_VAR(struct gulp_pvt *, pvt, NULL, ao2_cleanup);
+       RAII_VAR(struct chan_pjsip_pvt *, pvt, NULL, ao2_cleanup);
        struct ast_sip_channel_pvt *channel;
 
-       if (!(pvt = ao2_alloc(sizeof(*pvt), gulp_pvt_dtor))) {
+       if (!(pvt = ao2_alloc(sizeof(*pvt), chan_pjsip_pvt_dtor))) {
                return NULL;
        }
 
-       if (!(chan = ast_channel_alloc(1, state, S_OR(session->id.number.str, 
""), S_OR(session->id.name.str, ""), "", "", "", linkedid, 0, "Gulp/%s-%08x", 
ast_sorcery_object_get_id(session->endpoint),
+       if (!(chan = ast_channel_alloc(1, state, S_OR(session->id.number.str, 
""), S_OR(session->id.name.str, ""), "", "", "", linkedid, 0, "PJSIP/%s-%08x", 
ast_sorcery_object_get_id(session->endpoint),
                ast_atomic_fetchadd_int((int *)&chan_idx, +1)))) {
                return NULL;
        }
 
-       ast_channel_tech_set(chan, &gulp_tech);
+       ast_channel_tech_set(chan, &chan_pjsip_tech);
 
        if (!(channel = ast_sip_channel_pvt_alloc(pvt, session))) {
                ast_hangup(chan);
@@ -650,8 +650,8 @@
        return (status == PJ_SUCCESS) ? 0 : -1;
 }
 
-/*! \brief Function called by core when we should answer a Gulp session */
-static int gulp_answer(struct ast_channel *ast)
+/*! \brief Function called by core when we should answer a PJSIP session */
+static int chan_pjsip_answer(struct ast_channel *ast)
 {
        struct ast_sip_channel_pvt *channel = ast_channel_tech_pvt(ast);
 
@@ -672,7 +672,7 @@
 }
 
 /*! \brief Internal helper function called when CNG tone is detected */
-static struct ast_frame *gulp_cng_tone_detected(struct ast_sip_session 
*session, struct ast_frame *f)
+static struct ast_frame *chan_pjsip_cng_tone_detected(struct ast_sip_session 
*session, struct ast_frame *f)
 {
        const char *target_context;
        int exists;
@@ -721,10 +721,10 @@
 }
 
 /*! \brief Function called by core to read any waiting frames */
-static struct ast_frame *gulp_read(struct ast_channel *ast)
+static struct ast_frame *chan_pjsip_read(struct ast_channel *ast)
 {
        struct ast_sip_channel_pvt *channel = ast_channel_tech_pvt(ast);
-       struct gulp_pvt *pvt = channel->pvt;
+       struct chan_pjsip_pvt *pvt = channel->pvt;
        struct ast_frame *f;
        struct ast_sip_session_media *media = NULL;
        int rtcp = 0;
@@ -772,7 +772,7 @@
                if (f && (f->frametype == AST_FRAME_DTMF)) {
                        if (f->subclass.integer == 'f') {
                                ast_debug(3, "Fax CNG detected on %s\n", 
ast_channel_name(ast));
-                               f = gulp_cng_tone_detected(channel->session, f);
+                               f = 
chan_pjsip_cng_tone_detected(channel->session, f);
                        } else {
                                ast_debug(3, "* Detected inband DTMF '%c' on 
'%s'\n", f->subclass.integer,
                                        ast_channel_name(ast));
@@ -784,10 +784,10 @@
 }
 
 /*! \brief Function called by core to write frames */
-static int gulp_write(struct ast_channel *ast, struct ast_frame *frame)
+static int chan_pjsip_write(struct ast_channel *ast, struct ast_frame *frame)
 {
        struct ast_sip_channel_pvt *channel = ast_channel_tech_pvt(ast);
-       struct gulp_pvt *pvt = channel->pvt;
+       struct chan_pjsip_pvt *pvt = channel->pvt;
        struct ast_sip_session_media *media;
        int res = 0;
 
@@ -821,7 +821,7 @@
        case AST_FRAME_MODEM:
                break;
        default:
-               ast_log(LOG_WARNING, "Can't send %d type frames with Gulp\n", 
frame->frametype);
+               ast_log(LOG_WARNING, "Can't send %d type frames with PJSIP\n", 
frame->frametype);
                break;
        }
 
@@ -837,7 +837,7 @@
 {
        struct fixup_data *fix_data = data;
        struct ast_sip_channel_pvt *channel = 
ast_channel_tech_pvt(fix_data->chan);
-       struct gulp_pvt *pvt = channel->pvt;
+       struct chan_pjsip_pvt *pvt = channel->pvt;
 
        channel->session->channel = fix_data->chan;
        if (pvt->media[SIP_MEDIA_AUDIO] && pvt->media[SIP_MEDIA_AUDIO]->rtp) {
@@ -851,7 +851,7 @@
 }
 
 /*! \brief Function called by core to change the underlying owner channel */
-static int gulp_fixup(struct ast_channel *oldchan, struct ast_channel *newchan)
+static int chan_pjsip_fixup(struct ast_channel *oldchan, struct ast_channel 
*newchan)
 {
        struct ast_sip_channel_pvt *channel = ast_channel_tech_pvt(newchan);
        struct fixup_data fix_data;
@@ -872,7 +872,7 @@
 }
 
 /*! \brief Function called to get the device state of an endpoint */
-static int gulp_devicestate(const char *data)
+static int chan_pjsip_devicestate(const char *data)
 {
        RAII_VAR(struct ast_sip_endpoint *, endpoint, 
ast_sorcery_retrieve_by_id(ast_sip_get_sorcery(), "endpoint", data), 
ao2_cleanup);
        enum ast_device_state state = AST_DEVICE_UNKNOWN;
@@ -934,7 +934,7 @@
 }
 
 /*! \brief Function called to query options on a channel */
-static int gulp_queryoption(struct ast_channel *ast, int option, void *data, 
int *datalen)
+static int chan_pjsip_queryoption(struct ast_channel *ast, int option, void 
*data, int *datalen)
 {
        struct ast_sip_channel_pvt *channel = ast_channel_tech_pvt(ast);
        struct ast_sip_session *session = channel->session;
@@ -1099,10 +1099,10 @@
 }
 
 /*! \brief Function called by core to ask the channel to indicate some sort of 
condition */
-static int gulp_indicate(struct ast_channel *ast, int condition, const void 
*data, size_t datalen)
+static int chan_pjsip_indicate(struct ast_channel *ast, int condition, const 
void *data, size_t datalen)
 {
        struct ast_sip_channel_pvt *channel = ast_channel_tech_pvt(ast);
-       struct gulp_pvt *pvt = channel->pvt;
+       struct chan_pjsip_pvt *pvt = channel->pvt;
        struct ast_sip_session_media *media;
        int response_code = 0;
        int res = 0;
@@ -1119,7 +1119,7 @@
                } else {
                        res = -1;
                }
-               ast_devstate_changed(AST_DEVICE_UNKNOWN, AST_DEVSTATE_CACHABLE, 
"Gulp/%s", ast_sorcery_object_get_id(channel->session->endpoint));
+               ast_devstate_changed(AST_DEVICE_UNKNOWN, AST_DEVSTATE_CACHABLE, 
"PJSIP/%s", ast_sorcery_object_get_id(channel->session->endpoint));
                break;
        case AST_CONTROL_BUSY:
                if (ast_channel_state(ast) != AST_STATE_UP) {
@@ -1335,7 +1335,7 @@
 }
 
 /*! \brief Function called by core for Asterisk initiated transfer */
-static int gulp_transfer(struct ast_channel *chan, const char *target)
+static int chan_pjsip_transfer(struct ast_channel *chan, const char *target)
 {
        struct ast_sip_channel_pvt *channel = ast_channel_tech_pvt(chan);
        struct transfer_data *trnf_data = transfer_data_alloc(channel->session, 
target);
@@ -1354,10 +1354,10 @@
 }
 
 /*! \brief Function called by core to start a DTMF digit */
-static int gulp_digit_begin(struct ast_channel *chan, char digit)
+static int chan_pjsip_digit_begin(struct ast_channel *chan, char digit)
 {
        struct ast_sip_channel_pvt *channel = ast_channel_tech_pvt(chan);
-       struct gulp_pvt *pvt = channel->pvt;
+       struct chan_pjsip_pvt *pvt = channel->pvt;
        struct ast_sip_session_media *media = pvt->media[SIP_MEDIA_AUDIO];
        int res = 0;
 
@@ -1442,10 +1442,10 @@
 }
 
 /*! \brief Function called by core to stop a DTMF digit */
-static int gulp_digit_end(struct ast_channel *ast, char digit, unsigned int 
duration)
+static int chan_pjsip_digit_end(struct ast_channel *ast, char digit, unsigned 
int duration)
 {
        struct ast_sip_channel_pvt *channel = ast_channel_tech_pvt(ast);
-       struct gulp_pvt *pvt = channel->pvt;
+       struct chan_pjsip_pvt *pvt = channel->pvt;
        struct ast_sip_session_media *media = pvt->media[SIP_MEDIA_AUDIO];
        int res = 0;
 
@@ -1498,7 +1498,7 @@
 }
 
 /*! \brief Function called by core to actually start calling a remote party */
-static int gulp_call(struct ast_channel *ast, const char *dest, int timeout)
+static int chan_pjsip_call(struct ast_channel *ast, const char *dest, int 
timeout)
 {
        struct ast_sip_channel_pvt *channel = ast_channel_tech_pvt(ast);
 
@@ -1587,7 +1587,7 @@
 }
 
 /*! \brief Clear a channel from a session along with its PVT */
-static void clear_session_and_channel(struct ast_sip_session *session, struct 
ast_channel *ast, struct gulp_pvt *pvt)
+static void clear_session_and_channel(struct ast_sip_session *session, struct 
ast_channel *ast, struct chan_pjsip_pvt *pvt)
 {
        session->channel = NULL;
        if (pvt->media[SIP_MEDIA_AUDIO] && pvt->media[SIP_MEDIA_AUDIO]->rtp) {
@@ -1606,7 +1606,7 @@
        struct hangup_data *h_data = data;
        struct ast_channel *ast = h_data->chan;
        struct ast_sip_channel_pvt *channel = ast_channel_tech_pvt(ast);
-       struct gulp_pvt *pvt = channel->pvt;
+       struct chan_pjsip_pvt *pvt = channel->pvt;
        struct ast_sip_session *session = channel->session;
        int cause = h_data->cause;
 
@@ -1626,11 +1626,11 @@
        return 0;
 }
 
-/*! \brief Function called by core to hang up a Gulp session */
-static int gulp_hangup(struct ast_channel *ast)
+/*! \brief Function called by core to hang up a PJSIP session */
+static int chan_pjsip_hangup(struct ast_channel *ast)
 {
        struct ast_sip_channel_pvt *channel = ast_channel_tech_pvt(ast);
-       struct gulp_pvt *pvt = channel->pvt;
+       struct chan_pjsip_pvt *pvt = channel->pvt;
        int cause = 
hangup_cause2sip(ast_channel_hangupcause(channel->session->channel));
        struct hangup_data *h_data = hangup_data_alloc(cause, ast);
 
@@ -1676,7 +1676,7 @@
        );
 
        if (ast_strlen_zero(tmp)) {
-               ast_log(LOG_ERROR, "Unable to create Gulp channel with empty 
destination\n");
+               ast_log(LOG_ERROR, "Unable to create PJSIP channel with empty 
destination\n");
                req_data->cause = AST_CAUSE_CHANNEL_UNACCEPTABLE;
                return -1;
        }
@@ -1692,10 +1692,10 @@
        }
 
        if (ast_strlen_zero(endpoint_name)) {
-               ast_log(LOG_ERROR, "Unable to create Gulp channel with empty 
endpoint name\n");
+               ast_log(LOG_ERROR, "Unable to create PJSIP channel with empty 
endpoint name\n");
                req_data->cause = AST_CAUSE_CHANNEL_UNACCEPTABLE;
        } else if (!(endpoint = 
ast_sorcery_retrieve_by_id(ast_sip_get_sorcery(), "endpoint", endpoint_name))) {
-               ast_log(LOG_ERROR, "Unable to create Gulp channel - endpoint 
'%s' was not found\n", endpoint_name);
+               ast_log(LOG_ERROR, "Unable to create PJSIP channel - endpoint 
'%s' was not found\n", endpoint_name);
                req_data->cause = AST_CAUSE_NO_ROUTE_DESTINATION;
                return -1;
        }
@@ -1710,8 +1710,8 @@
        return 0;
 }
 
-/*! \brief Function called by core to create a new outgoing Gulp session */
-static struct ast_channel *gulp_request(const char *type, struct 
ast_format_cap *cap, const struct ast_channel *requestor, const char *data, int 
*cause)
+/*! \brief Function called by core to create a new outgoing PJSIP session */
+static struct ast_channel *chan_pjsip_request(const char *type, struct 
ast_format_cap *cap, const struct ast_channel *requestor, const char *data, int 
*cause)
 {
        struct request_data req_data;
        RAII_VAR(struct ast_sip_session *, session, NULL, ao2_cleanup);
@@ -1726,7 +1726,7 @@
 
        session = req_data.session;
 
-       if (!(session->channel = gulp_new(session, AST_STATE_DOWN, NULL, NULL, 
requestor ? ast_channel_linkedid(requestor) : NULL, NULL))) {
+       if (!(session->channel = chan_pjsip_new(session, AST_STATE_DOWN, NULL, 
NULL, requestor ? ast_channel_linkedid(requestor) : NULL, NULL))) {
                /* Session needs to be terminated prematurely */
                return NULL;
        }
@@ -1784,8 +1784,8 @@
        return 0;
 }
 
-/*! \brief Function called by core to send text on Gulp session */
-static int gulp_sendtext(struct ast_channel *ast, const char *text)
+/*! \brief Function called by core to send text on PJSIP session */
+static int chan_pjsip_sendtext(struct ast_channel *ast, const char *text)
 {
        struct ast_sip_channel_pvt *channel = ast_channel_tech_pvt(ast);
        struct sendtext_data *data = sendtext_data_create(channel->session, 
text);
@@ -1888,7 +1888,7 @@
        return 0;
 }
 
-static void gulp_session_begin(struct ast_sip_session *session)
+static void chan_pjsip_session_begin(struct ast_sip_session *session)
 {
        RAII_VAR(struct ast_datastore *, datastore, NULL, ao2_cleanup);
 
@@ -1908,7 +1908,7 @@
 }
 
 /*! \brief Function called when the session ends */
-static void gulp_session_end(struct ast_sip_session *session)
+static void chan_pjsip_session_end(struct ast_sip_session *session)
 {
        if (!session->channel) {
                return;
@@ -1924,7 +1924,7 @@
 }
 
 /*! \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)
+static int chan_pjsip_incoming_request(struct ast_sip_session *session, struct 
pjsip_rx_data *rdata)
 {
        pjsip_tx_data *packet = NULL;
 
@@ -1932,12 +1932,12 @@
                return 0;
        }
 
-       if (!(session->channel = gulp_new(session, AST_STATE_RING, 
session->exten, NULL, NULL, NULL))) {
+       if (!(session->channel = chan_pjsip_new(session, AST_STATE_RING, 
session->exten, NULL, NULL, NULL))) {
                if (pjsip_inv_end_session(session->inv_session, 503, NULL, 
&packet) == PJ_SUCCESS) {
                        ast_sip_session_send_response(session, packet);
                }
 
-               ast_log(LOG_ERROR, "Failed to allocate new GULP channel on 
incoming SIP INVITE\n");
+               ast_log(LOG_ERROR, "Failed to allocate new PJSIP channel on 
incoming SIP INVITE\n");
                return -1;
        }
        /* channel gets created on incoming request, but we wait to call start
@@ -1967,7 +1967,7 @@
                break;
        }
 
-       ast_debug(3, "Started PBX on new GULP channel %s\n", 
ast_channel_name(session->channel));
+       ast_debug(3, "Started PBX on new PJSIP channel %s\n", 
ast_channel_name(session->channel));
 
        return (res == AST_PBX_SUCCESS) ? 0 : -1;
 }
@@ -1979,7 +1979,7 @@
 };
 
 /*! \brief Function called when a response is received on the session */
-static void gulp_incoming_response(struct ast_sip_session *session, struct 
pjsip_rx_data *rdata)
+static void chan_pjsip_incoming_response(struct ast_sip_session *session, 
struct pjsip_rx_data *rdata)
 {
        struct pjsip_status_line status = rdata->msg_info.msg->line.status;
 
@@ -2005,7 +2005,7 @@
        }
 }
 
-static int gulp_incoming_ack(struct ast_sip_session *session, struct 
pjsip_rx_data *rdata)
+static int chan_pjsip_incoming_ack(struct ast_sip_session *session, struct 
pjsip_rx_data *rdata)
 {
        if (rdata->msg_info.msg->line.req.method.id == PJSIP_ACK_METHOD) {
                if (session->endpoint->media.direct_media.enabled) {
@@ -2027,43 +2027,43 @@
  */
 static int load_module(void)
 {
-       if (!(gulp_tech.capabilities = ast_format_cap_alloc())) {
+       if (!(chan_pjsip_tech.capabilities = ast_format_cap_alloc())) {
                return AST_MODULE_LOAD_DECLINE;
        }
 
-       ast_format_cap_add_all_by_type(gulp_tech.capabilities, 
AST_FORMAT_TYPE_AUDIO);
-
-       ast_rtp_glue_register(&gulp_rtp_glue);
-
-       if (ast_channel_register(&gulp_tech)) {
+       ast_format_cap_add_all_by_type(chan_pjsip_tech.capabilities, 
AST_FORMAT_TYPE_AUDIO);
+
+       ast_rtp_glue_register(&chan_pjsip_rtp_glue);
+
+       if (ast_channel_register(&chan_pjsip_tech)) {
                ast_log(LOG_ERROR, "Unable to register channel class %s\n", 
channel_type);
                goto end;
        }
 
-       if (ast_custom_function_register(&gulp_dial_contacts_function)) {
-               ast_log(LOG_ERROR, "Unable to register GULP_DIAL_CONTACTS 
dialplan function\n");
+       if (ast_custom_function_register(&chan_pjsip_dial_contacts_function)) {
+               ast_log(LOG_ERROR, "Unable to register PJSIP_DIAL_CONTACTS 
dialplan function\n");
                goto end;
        }
 
        if (ast_custom_function_register(&media_offer_function)) {
-               ast_log(LOG_WARNING, "Unable to register GULP_MEDIA_OFFER 
dialplan function\n");
-       }
-
-       if (ast_sip_session_register_supplement(&gulp_supplement)) {
-               ast_log(LOG_ERROR, "Unable to register Gulp supplement\n");
+               ast_log(LOG_WARNING, "Unable to register PJSIP_MEDIA_OFFER 
dialplan function\n");
+       }
+
+       if (ast_sip_session_register_supplement(&chan_pjsip_supplement)) {
+               ast_log(LOG_ERROR, "Unable to register PJSIP supplement\n");
                goto end;
        }
 
        if (ast_sip_session_register_supplement(&pbx_start_supplement)) {
-               ast_log(LOG_ERROR, "Unable to register Gulp pbx start 
supplement\n");
-               ast_sip_session_unregister_supplement(&gulp_supplement);
+               ast_log(LOG_ERROR, "Unable to register PJSIP pbx start 
supplement\n");
+               ast_sip_session_unregister_supplement(&chan_pjsip_supplement);
                goto end;
        }
 
-       if (ast_sip_session_register_supplement(&gulp_ack_supplement)) {
-               ast_log(LOG_ERROR, "Unable to register Gulp ACK supplement\n");
+       if (ast_sip_session_register_supplement(&chan_pjsip_ack_supplement)) {
+               ast_log(LOG_ERROR, "Unable to register PJSIP ACK supplement\n");
                ast_sip_session_unregister_supplement(&pbx_start_supplement);
-               ast_sip_session_unregister_supplement(&gulp_supplement);
+               ast_sip_session_unregister_supplement(&chan_pjsip_supplement);
                goto end;
        }
 
@@ -2071,9 +2071,9 @@
 
 end:
        ast_custom_function_unregister(&media_offer_function);
-       ast_custom_function_unregister(&gulp_dial_contacts_function);
-       ast_channel_unregister(&gulp_tech);
-       ast_rtp_glue_unregister(&gulp_rtp_glue);
+       ast_custom_function_unregister(&chan_pjsip_dial_contacts_function);
+       ast_channel_unregister(&chan_pjsip_tech);
+       ast_rtp_glue_unregister(&chan_pjsip_rtp_glue);
 
        return AST_MODULE_LOAD_FAILURE;
 }
@@ -2084,22 +2084,22 @@
        return -1;
 }
 
-/*! \brief Unload the Gulp channel from Asterisk */
+/*! \brief Unload the PJSIP channel from Asterisk */
 static int unload_module(void)
 {
        ast_custom_function_unregister(&media_offer_function);
 
-       ast_sip_session_unregister_supplement(&gulp_supplement);
+       ast_sip_session_unregister_supplement(&chan_pjsip_supplement);
        ast_sip_session_unregister_supplement(&pbx_start_supplement);
 
-       ast_custom_function_unregister(&gulp_dial_contacts_function);
-       ast_channel_unregister(&gulp_tech);
-       ast_rtp_glue_unregister(&gulp_rtp_glue);
-
-       return 0;
-}
-
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Gulp SIP Channel 
Driver",
+       ast_custom_function_unregister(&chan_pjsip_dial_contacts_function);
+       ast_channel_unregister(&chan_pjsip_tech);
+       ast_rtp_glue_unregister(&chan_pjsip_rtp_glue);
+
+       return 0;
+}
+
+AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "PJSIP Channel 
Driver",
                .load = load_module,
                .unload = unload_module,
                .reload = reload,

Modified: trunk/res/Makefile
URL: 
http://svnview.digium.com/svn/asterisk/trunk/res/Makefile?view=diff&rev=395764&r1=395763&r2=395764
==============================================================================
--- trunk/res/Makefile (original)
+++ trunk/res/Makefile Tue Jul 30 13:14:50 2013
@@ -43,8 +43,8 @@
 $(if $(filter res_ael_share,$(EMBEDDED_MODS)),modules.link,res_ael_share.so): 
ael/ael_lex.o ael/ael.tab.o ael/pval.o
 ael/ael_lex.o ael/ael.tab.o ael/pval.o: _ASTCFLAGS+=$(call 
MOD_ASTCFLAGS,res_ael_share)
 
-$(if $(filter res_sip,$(EMBEDDED_MODS)),modules.link,res_sip.so): $(subst 
.c,.o,$(wildcard res_sip/*.c))
-$(subst .c,.o,$(wildcard res_sip/*.c)): _ASTCFLAGS+=$(call 
MOD_ASTCFLAGS,res_sip)
+$(if $(filter res_pjsip,$(EMBEDDED_MODS)),modules.link,res_pjsip.so): $(subst 
.c,.o,$(wildcard res_pjsip/*.c))
+$(subst .c,.o,$(wildcard res_pjsip/*.c)): _ASTCFLAGS+=$(call 
MOD_ASTCFLAGS,res_pjsip)
 
 $(if $(filter res_stasis,$(EMBEDDED_MODS)),modules.link,res_stasis.so): 
$(subst .c,.o,$(wildcard stasis/*.c))
 $(subst .c,.o,$(wildcard stasis/*.c)): _ASTCFLAGS+=$(call 
MOD_ASTCFLAGS,res_stasis)
@@ -74,7 +74,7 @@
 
 clean::
        rm -f snmp/*.[oi] ael/*.[oi] ais/*.[oi] ari/*.[oi]
-       rm -f res_sip/*.[oi] stasis/*.[oi]
+       rm -f res_pjsip/*.[oi] stasis/*.[oi]
        rm -f parking/*.o parking/*.i
 
 $(if $(filter res_parking,$(EMBEDDED_MODS)),modules.link,res_parking.so): 
$(subst .c,.o,$(wildcard parking/*.c))

Copied: trunk/res/res_pjsip.c (from r395748, trunk/res/res_sip.c)
URL: 
http://svnview.digium.com/svn/asterisk/trunk/res/res_pjsip.c?view=diff&rev=395764&p1=trunk/res/res_sip.c&r1=395748&p2=trunk/res/res_pjsip.c&r2=395764
==============================================================================
--- trunk/res/res_sip.c (original)
+++ trunk/res/res_pjsip.c Tue Jul 30 13:14:50 2013
@@ -23,8 +23,8 @@
 #include <pjsip_simple.h>
 #include <pjlib.h>
 
-#include "asterisk/res_sip.h"
-#include "res_sip/include/res_sip_private.h"

[... 5329 lines stripped ...]

--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

svn-commits mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/svn-commits

Reply via email to