[asterisk-commits] dvossel: branch group/aoc r251883 - /team/group/aoc/channels/chan_sip.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Thu Mar 11 14:44:33 CST 2010
Author: dvossel
Date: Thu Mar 11 14:44:29 2010
New Revision: 251883
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=251883
Log:
support for aoc-e messages over sip
Modified:
team/group/aoc/channels/chan_sip.c
Modified: team/group/aoc/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/team/group/aoc/channels/chan_sip.c?view=diff&rev=251883&r1=251882&r2=251883
==============================================================================
--- team/group/aoc/channels/chan_sip.c (original)
+++ team/group/aoc/channels/chan_sip.c Thu Mar 11 14:44:29 2010
@@ -1018,7 +1018,7 @@
static int transmit_request_with_auth(struct sip_pvt *p, int sipmethod, int seqno, enum xmittype reliable, int newbranch);
static int transmit_invite(struct sip_pvt *p, int sipmethod, int sdp, int init);
static int transmit_reinvite_with_sdp(struct sip_pvt *p, int t38version, int oldsdp);
-static int transmit_info_with_aocd(struct sip_pvt *p, struct ast_aoc_decoded *decoded);
+static int transmit_info_with_aoc(struct sip_pvt *p, struct ast_aoc_decoded *decoded);
static int transmit_info_with_digit(struct sip_pvt *p, const char digit, unsigned int duration);
static int transmit_info_with_vidupdate(struct sip_pvt *p);
static int transmit_message_with_text(struct sip_pvt *p, const char *text);
@@ -5370,12 +5370,8 @@
{
struct ast_aoc_decoded *decoded = ast_aoc_decode((struct ast_aoc_encoded *) data, datalen);
if (decoded) {
- if (ast_aoc_get_msg_type(decoded) == AOC_D) {
- transmit_info_with_aocd(p, decoded);
- ast_aoc_destroy_decoded(decoded);
- } else if(ast_aoc_get_msg_type(decoded) == AOC_E) {
- /* TODO XXX implement a way of sending AOC_E */
- }
+ transmit_info_with_aoc(p, decoded);
+ ast_aoc_destroy_decoded(decoded);
} else {
ast_log(LOG_ERROR, "Error decoding indicated AOC data\n");
res = -1;
@@ -10831,7 +10827,7 @@
}
/*! \brief Send SIP INFO advice of charge message */
-static int transmit_info_with_aocd(struct sip_pvt *p, struct ast_aoc_decoded *decoded)
+static int transmit_info_with_aoc(struct sip_pvt *p, struct ast_aoc_decoded *decoded)
{
struct sip_request req;
struct ast_str *str = ast_str_alloca(512);
@@ -10840,7 +10836,14 @@
reqprep(&req, p, SIP_INFO, 0, 1);
- ast_str_append(&str, 0, "type=active;");
+ if (ast_aoc_get_msg_type(decoded) == AOC_D) {
+ ast_str_append(&str, 0, "type=active;");
+ } else if (ast_aoc_get_msg_type(decoded) == AOC_E) {
+ ast_str_append(&str, 0, "type=terminated;");
+ } else {
+ /* unsupported message type */
+ return -1;
+ }
switch (charging) {
case AOC_CHARGE_FREE:
More information about the asterisk-commits
mailing list