[libpri-commits] seanbright: branch 1.4 r885 - in /branches/1.4: libpri.h pri_internal.h q931.c
SVN commits to the libpri project
libpri-commits at lists.digium.com
Wed Jun 24 13:19:28 CDT 2009
Author: seanbright
Date: Wed Jun 24 13:19:24 2009
New Revision: 885
URL: http://svn.asterisk.org/svn-view/libpri?view=rev&rev=885
Log:
Capture and expose the Reverse Charging Indication IE on ISDN PRI.
(issue #13760)
Reported by: mrgabu
Patches:
20090619_libpri_1.4.patch uploaded by seanbright (license 71)
Tested by: seanbright, pruonckk
Review: https://reviewboard.asterisk.org/r/291/
Modified:
branches/1.4/libpri.h
branches/1.4/pri_internal.h
branches/1.4/q931.c
Modified: branches/1.4/libpri.h
URL: http://svn.asterisk.org/svn-view/libpri/branches/1.4/libpri.h?view=diff&rev=885&r1=884&r2=885
==============================================================================
--- branches/1.4/libpri.h (original)
+++ branches/1.4/libpri.h Wed Jun 24 13:19:24 2009
@@ -421,6 +421,7 @@
char origcallednum[256];
int callingplanorigcalled; /* Dialing plan of Originally Called Number */
int origredirectingreason;
+ int reversecharge;
} pri_event_ring;
typedef struct pri_event_hangup {
@@ -708,6 +709,7 @@
#define PRI_REDIRECTING_REASON
#define PRI_AOC_UNITS
#define PRI_ANI
+#define PRI_REVERSECHARGE_SUPPORT
/* Send notification */
int pri_notify(struct pri *pri, q931_call *c, int channel, int info);
Modified: branches/1.4/pri_internal.h
URL: http://svn.asterisk.org/svn-view/libpri/branches/1.4/pri_internal.h?view=diff&rev=885&r1=884&r2=885
==============================================================================
--- branches/1.4/pri_internal.h (original)
+++ branches/1.4/pri_internal.h Wed Jun 24 13:19:24 2009
@@ -272,6 +272,7 @@
q931_call *bridged_call; /* Pointer to other leg of bridged call (Used by Q.SIG when eliminating tromboned calls) */
int changestatus; /* SERVICE message changestatus */
+ int reversecharge; /* Reverse charging indication */
};
extern int pri_schedule_event(struct pri *pri, int ms, void (*function)(void *data), void *data);
Modified: branches/1.4/q931.c
URL: http://svn.asterisk.org/svn-view/libpri/branches/1.4/q931.c?view=diff&rev=885&r1=884&r2=885
==============================================================================
--- branches/1.4/q931.c (original)
+++ branches/1.4/q931.c Wed Jun 24 13:19:24 2009
@@ -2143,6 +2143,16 @@
pri_message(ctrl, "Count=%d (0x%02x)\n", ie->data[0] & 0x1f, ie->data[0] & 0x1f);
}
+static void dump_reverse_charging_indication(int full_ie, struct pri *ctrl, q931_ie *ie, int len, char prefix)
+{
+ pri_message(ctrl, "%c Reverse Charging Indication (len=%02d): %d\n", prefix, len, ie->data[0] & 0x7);
+}
+
+static int receive_reverse_charging_indication(int full_ie, struct pri *ctrl, q931_call *call, int msgtype, q931_ie *ie, int len)
+{
+ call->reversecharge = ie->data[0] & 0x7;
+ return 0;
+}
static struct ie ies[] = {
/* Codeset 0 - Common */
@@ -2160,7 +2170,7 @@
{ 1, Q931_BINARY_PARAMETERS, "Packet-layer Binary Parameters" },
{ 1, Q931_WINDOW_SIZE, "Packet-layer Window Size" },
{ 1, Q931_CLOSED_USER_GROUP, "Closed User Group" },
- { 1, Q931_REVERSE_CHARGE_INDIC, "Reverse Charging Indication" },
+ { 1, Q931_REVERSE_CHARGE_INDIC, "Reverse Charging Indication", dump_reverse_charging_indication, receive_reverse_charging_indication },
{ 1, Q931_CALLING_PARTY_NUMBER, "Calling Party Number", dump_calling_party_number, receive_calling_party_number, transmit_calling_party_number },
{ 1, Q931_CALLING_PARTY_SUBADDR, "Calling Party Subaddress", dump_calling_party_subaddr, receive_calling_party_subaddr },
{ 1, Q931_CALLED_PARTY_NUMBER, "Called Party Number", dump_called_party_number, receive_called_party_number, transmit_called_party_number },
@@ -3784,6 +3794,7 @@
ctrl->ev.ring.redirectingreason = c->redirectingreason;
ctrl->ev.ring.progress = c->progress;
ctrl->ev.ring.progressmask = c->progressmask;
+ ctrl->ev.ring.reversecharge = c->reversecharge;
return Q931_RES_HAVEEVENT;
case Q931_ALERTING:
if (c->newcall) {
More information about the libpri-commits
mailing list