SOURCES: libpri-bristuff.patch (NEW) - bristuffed patch from debian

arekm arekm at pld-linux.org
Sat Feb 9 11:26:13 CET 2008


Author: arekm                        Date: Sat Feb  9 10:26:13 2008 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- bristuffed patch from debian

---- Files affected:
SOURCES:
   libpri-bristuff.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/libpri-bristuff.patch
diff -u /dev/null SOURCES/libpri-bristuff.patch:1.1
--- /dev/null	Sat Feb  9 11:26:13 2008
+++ SOURCES/libpri-bristuff.patch	Sat Feb  9 11:26:07 2008
@@ -0,0 +1,6100 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## bristuff.dpatch by Tzafrir Cohen <tzafrir.cohen at xorcom.com>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: The libpri part of bristuff, version bristuff-0.4.0-test4
+## DP: http://www.junghanns.net/en/download.html
+## DP:
+## DP: newer versions: replace the contets of the patch file literally.
+## DP: The remove Makefile and the strange changes this libpri.patch makes to 
+## DP: copyright statements.
+
+ at DPATCH@
+diff -urN libpri-1.4.1.orig/libpri.h libpri-1.4.1/libpri.h
+--- libpri-1.4.1.orig/libpri.h	2006-04-27 18:09:11.000000000 +0200
++++ libpri-1.4.1/libpri.h	2007-07-11 14:25:15.000000000 +0200
+@@ -5,6 +5,8 @@
+  *
+  * Copyright (C) 2001, Linux Support Services, Inc.
+  * All Rights Reserved.
++ * Copyright (C) 2003-2006 Junghanns.NET GmbH
++ * Klaus-Peter Junghanns <kpj at junghanns.net>
+  *
+  * This program is free software; you can redistribute it and/or modify
+  * it under the terms of the GNU General Public License as published by
+@@ -26,8 +28,12 @@
+ #define _LIBPRI_H
+ 
+ /* Node types */
+-#define PRI_NETWORK		1
++#define PRI_NETWORK		1	/* PTP modes, default for PRI */
+ #define PRI_CPE			2
++#define BRI_NETWORK_PTMP	3	/* PTMP modes, default for BRI */
++#define BRI_CPE_PTMP		4	
++#define BRI_NETWORK		5	/* PTP modes */
++#define BRI_CPE			6	
+ 
+ /* Debugging */
+ #define PRI_DEBUG_Q921_RAW		(1 << 0)	/* Show raw HDLC frames */
+@@ -76,6 +82,12 @@
+ #define PRI_EVENT_NOTIFY		16	/* Notification received */
+ #define PRI_EVENT_PROGRESS		17	/* When we get CALL_PROCEEDING or PROGRESS */
+ #define PRI_EVENT_KEYPAD_DIGIT		18	/* When we receive during ACTIVE state */
++#define PRI_EVENT_HOLD_REQ	19	/* R */
++#define PRI_EVENT_RETRIEVE_REQ  20
++#define PRI_EVENT_SUSPEND_REQ   21	/* park */
++#define PRI_EVENT_RESUME_REQ    22	/* unpark */
++#define PRI_EVENT_DISPLAY_RECEIVED    23
++#define PRI_EVENT_FACILITY	24	/* Facility */
+ 
+ /* Simple states */
+ #define PRI_STATE_DOWN		0
+@@ -252,11 +264,17 @@
+ #define PRI_NSF_ATT_MULTIQUEST         0xF0
+ #define PRI_NSF_CALL_REDIRECTION_SERVICE       0xF7
+ 
++#ifdef RELAX_TRB
++#define PRI_RELAX_TRB
++#endif
++
++typedef struct q921_call q921_call;
+ typedef struct q931_call q931_call;
+ 
+ typedef struct pri_event_generic {
+ 	/* Events with no additional information fall in this category */
+ 	int e;
++	int tei;
+ } pri_event_generic;
+ 
+ typedef struct pri_event_error {
+@@ -275,18 +293,19 @@
+ 	int cref;
+ 	int progress;
+ 	int progressmask;
+-	q931_call *call;
+ 	char useruserinfo[260];		/* User->User info */
++	q931_call *call;
+ } pri_event_ringing;
+ 
+ typedef struct pri_event_answer {
+ 	int e;
+ 	int channel;
++	int tei;				/* belongs to this tei */
+ 	int cref;
+ 	int progress;
+ 	int progressmask;
+-	q931_call *call;
+ 	char useruserinfo[260];		/* User->User info */
++	q931_call *call;
+ } pri_event_answer;
+ 
+ typedef struct pri_event_facname {
+@@ -304,32 +323,37 @@
+ 	int e;
+ 	int channel;				/* Channel requested */
+ 	int callingpres;			/* Presentation of Calling CallerID */
+-	int callingplanani;			/* Dialing plan of Calling entity ANI */
++	int callingpresuser;			/* Presentation of Calling CallerID */
+ 	int callingplan;			/* Dialing plan of Calling entity */
+-	char callingani[256];		/* Calling ANI */
+-	char callingnum[256];		/* Calling number */
++	int callingplanuser;			/* Dialing plan of Calling entity */
++	int callingplanani;			/* Dialing plan of Calling entity ANI */
++	char callingnum[256];		/* Calling number, network provided */
++	char callingani[256];		/* Calling number, user provided */
+ 	char callingname[256];		/* Calling name (if provided) */
+ 	int calledplan;				/* Dialing plan of Called number */
+ 	int ani2;                   /* ANI II */
+ 	char callednum[256];		/* Called number */
+-	char redirectingnum[256];	/* Redirecting number */
+-	char redirectingname[256];	/* Redirecting name */
+-	int redirectingreason;		/* Reason for redirect */
++	char redirectingnum[256];		/* Redirecting number */
++	char redirectingname[256];		/* Redirecting name */
++	int redirectingreason;			/* Reason for redirect */
+ 	int callingplanrdnis;			/* Dialing plan of Redirecting Number */
+-	char useruserinfo[260];		/* User->User info */
++	char useruserinfo[260];			/* User->User info */
+ 	int flexible;				/* Are we flexible with our channel selection? */
+ 	int cref;					/* Call Reference Number */
+ 	int ctype;					/* Call type (see PRI_TRANS_CAP_* */
+-	int layer1;					/* User layer 1 */
++	int layer1;				/* User layer 1 */
+ 	int complete;				/* Have we seen "Complete" i.e. no more number? */
+ 	q931_call *call;			/* Opaque call pointer */
+-	char callingsubaddr[256];	/* Calling parties subaddress */
++	int tei;				/* belongs to this tei */
++	char callingsubaddr[256];		/* Calling parties subaddress */
+ 	int progress;
+ 	int progressmask;
+ 	char origcalledname[256];
+ 	char origcallednum[256];
+ 	int callingplanorigcalled;		/* Dialing plan of Originally Called Number */
+ 	int origredirectingreason;
++	char lowlayercompat[16];
++	char highlayercompat[4];
+ } pri_event_ring;
+ 
+ typedef struct pri_event_hangup {
+@@ -337,6 +361,8 @@
+ 	int channel;				/* Channel requested */
+ 	int cause;
+ 	int cref;
++	int tei;
++	int inband_progress;
+ 	q931_call *call;			/* Opaque call pointer */
+ 	long aoc_units;				/* Advise of Charge number of charged units */
+ 	char useruserinfo[260];		/* User->User info */
+@@ -377,20 +403,80 @@
+ 	char digits[64];
+ } pri_event_keypad_digit;
+ 
++typedef struct pri_event_hold_req {
++	int e;
++	int channel;
++	int cref;
++	int tei;
++	q931_call *call;
++} pri_event_hold_req;
++
++/* euroisdn faciltiy fun */
++typedef struct pri_event_facility_req {
++	int e;
++	int channel;
++	int cref;
++	int tei;
++	int operation;
++	char forwardnum[256];		/* Redirection destination */
++	q931_call *call;
++} pri_event_facility_req;
++
++typedef struct pri_event_retrieve_req {
++	int e;
++	int channel;
++	int cref;
++	int tei;
++	q931_call *call;
++} pri_event_retrieve_req;
++
++typedef struct pri_event_suspend_req {
++	int e;
++	int channel;
++	int cref;
++	int tei;
++	q931_call *call;
++	char callid[10];
++} pri_event_suspend_req;
++
++typedef struct pri_event_resume_req {
++	int e;
++	int channel;
++	int cref;
++	int tei;
++	q931_call *call;
++	char callid[10];
++} pri_event_resume_req;
++
++typedef struct pri_event_display {
++	int e;
++	int channel;		
++	int cref;			
++	q931_call *call;
++	char text[256];
++} pri_event_display;
++
++
+ typedef union {
+ 	int e;
+ 	pri_event_generic gen;		/* Generic view */
+ 	pri_event_restart restart;	/* Restart view */
+ 	pri_event_error	  err;		/* Error view */
+ 	pri_event_facname facname;	/* Caller*ID Name on Facility */
++	pri_event_facility_req facility;	/* sservices */
+ 	pri_event_ring	  ring;		/* Ring */
+ 	pri_event_hangup  hangup;	/* Hang up */
+ 	pri_event_ringing ringing;	/* Ringing */
+ 	pri_event_answer  answer;	/* Answer */
+ 	pri_event_restart_ack restartack;	/* Restart Acknowledge */
+ 	pri_event_proceeding  proceeding;	/* Call proceeding & Progress */
+ 	pri_event_setup_ack   setup_ack;	/* SETUP_ACKNOWLEDGE structure */
+ 	pri_event_notify notify;		/* Notification */
++	pri_event_hold_req hold_req;
++	pri_event_retrieve_req retrieve_req;
++	pri_event_suspend_req suspend_req;
++	pri_event_resume_req resume_req;
++	pri_event_display display;
+ 	pri_event_keypad_digit digit;			/* Digits that come during a call */
+ } pri_event;
+ 
+@@ -405,7 +491,9 @@
+    channel operating in HDLC mode with FCS computed by the fd's driver.  Also it
+    must be NON-BLOCKING! Frames received on the fd should include FCS.  Nodetype 
+    must be one of PRI_NETWORK or PRI_CPE.  switchtype should be PRI_SWITCH_* */
+-extern struct pri *pri_new(int fd, int nodetype, int switchtype);
++extern struct pri *pri_new(int fd, int nodetype, int switchtype, int span);
++
++extern void pri_shutdown(struct pri *pri);
+ 
+ /* Create D-channel just as above with user defined I/O callbacks and data */
+ extern struct pri *pri_new_cb(int fd, int nodetype, int switchtype, pri_io_cb io_read, pri_io_cb io_write, void *userdata);
+@@ -429,6 +517,9 @@
+ /* Enable transmission support of Facility IEs on the pri */
+ extern void pri_facility_enable(struct pri *pri);
+ 
++/* Set file descriptor for debugging to a file */
++extern void pri_set_debug_fd(struct pri *pri, int fd);
++
+ /* Run PRI on the given D-channel, taking care of any events that
+    need to be handled.  If block is set, it will block until an event
+    occurs which needs to be handled */
+@@ -469,6 +560,12 @@
+ /* Send a keypad facility string of digits */
+ extern int pri_keypad_facility(struct pri *pri, q931_call *call, char *digits);
+ 
++/* Send a INFO msg with display ie  */
++extern int pri_information_display(struct pri *pri, q931_call *call, char *display);
++
++/* add a display ie to a call, so it can be sent with the next message */
++extern int pri_add_display(struct pri *pri, q931_call *call, char *display);
++
+ /* Answer the incomplete(call without called number) call on the given channel.
+    Set non-isdn to non-zero if you are not connecting to ISDN equipment */
+ extern int pri_need_more_info(struct pri *pri, q931_call *call, int channel, int nonisdn);
+@@ -477,6 +574,35 @@
+    Set non-isdn to non-zero if you are not connecting to ISDN equipment */
+ extern int pri_answer(struct pri *pri, q931_call *call, int channel, int nonisdn);
+ 
++extern int pri_deflect(struct pri *pri, q931_call *call, char *destination);
++
++/* Ack a HOLD_REQ */
++extern int pri_hold_acknowledge(struct pri *pri, q931_call *call);
++
++/* Reject a HOLD_REQ */
++extern int pri_hold_reject(struct pri *pri, q931_call *call);
++
++/* Ack a RETRIEVE_REQ */
++extern int pri_retrieve_acknowledge(struct pri *pri, q931_call *call, int channel);
++
++/* Reject a RETRIEVE_REQ */
++extern int pri_retrieve_reject(struct pri *pri, q931_call *call);
++
++/* Ack a SUSPEND_REQ */
++extern int pri_suspend_acknowledge(struct pri *pri, q931_call *call, char *display);
++
++/* Reject a SUSPEND_REQ */
++extern int pri_suspend_reject(struct pri *pri, q931_call *call, char *display);
++
++/* Reject a RESUME_REQ */
++extern int pri_resume_reject(struct pri *pri, q931_call *call, char *display);
++
++/* Ack a RESUME_REQ */
++extern int pri_resume_acknowledge(struct pri *pri, q931_call *call, int channel, char *display);
++
++/* Send a Facility Message */
++extern int pri_facility(struct pri *pri, q931_call *call, int operation, char *arguments);
++
+ /* Set CRV reference for GR-303 calls */
+ 
+ 
+@@ -485,14 +611,14 @@
+ 
+ /* backwards compatibility for those who don't use asterisk with libpri */
+ #define pri_release(a,b,c) \
+-	pri_hangup(a,b,c)
++	pri_hangup(a,b,c, -1)
+ 
+ #define pri_disconnect(a,b,c) \
+-	pri_hangup(a,b,c)
++	pri_hangup(a,b,c, -1)
+ 
+ /* Hangup a call */
+ #define PRI_HANGUP
+-extern int pri_hangup(struct pri *pri, q931_call *call, int cause);
++extern int pri_hangup(struct pri *pri, q931_call *call, int cause, int aocunits);
+ 
+ #define PRI_DESTROYCALL
+ extern void pri_destroycall(struct pri *pri, q931_call *call);
+@@ -525,7 +651,7 @@
+ extern void pri_sr_free(struct pri_sr *sr);
+ 
+ extern int pri_sr_set_channel(struct pri_sr *sr, int channel, int exclusive, int nonisdn);
+-extern int pri_sr_set_bearer(struct pri_sr *sr, int transmode, int userl1);
++extern int pri_sr_set_bearer(struct pri_sr *sr, int transmode, int userl1, char *llc);
+ extern int pri_sr_set_called(struct pri_sr *sr, char *called, int calledplan, int complete);
+ extern int pri_sr_set_caller(struct pri_sr *sr, char *caller, char *callername, int callerplan, int callerpres);
+ extern int pri_sr_set_redirecting(struct pri_sr *sr, char *num, int plan, int pres, int reason);
+@@ -553,8 +679,8 @@
+ 
+ /* Override message and error stuff */
+ #define PRI_NEW_SET_API
+-extern void pri_set_message(void (*__pri_error)(struct pri *pri, char *));
+-extern void pri_set_error(void (*__pri_error)(struct pri *pri, char *));
++extern void pri_set_message(void (*__pri_error)(char *, int span));
++extern void pri_set_error(void (*__pri_error)(char *, int span));
+ 
+ /* Set overlap mode */
+ #define PRI_SET_OVERLAPDIAL
+diff -urN libpri-1.4.1.orig/Makefile libpri-1.4.1/Makefile
+--- libpri-1.4.1.orig/Makefile	2006-12-30 20:17:34.000000000 +0100
++++ libpri-1.4.1/Makefile	2007-07-11 14:25:15.000000000 +0200
+@@ -27,6 +27,16 @@
+ # Uncomment if you want libpri to count number of Q921/Q931 sent/received
+ #LIBPRI_COUNTERS=-DLIBPRI_COUNTERS
+ 
++# Uncomment if you want libpri to always keep layer 2 up
++#LAYER2ALWAYSUP=-DLAYER2ALWAYSUP
++
++# Uncomment if you want libpri to hangup a call to an NT (p2mp) port if one
++# device sends a RELEASE COMPLETE with cause 17
++#FASTBUSYONBUSY=-DFASTBUSYONBUSY
++
++# workaround for slowly responding COs
++#RELAXEDTIMERS=-DRELAXED_TIMERS
++
+ CC=gcc
+ 
+ OSARCH=$(shell uname -s)
+@@ -36,7 +46,7 @@
+ DYNAMIC_LIBRARY=libpri.so.1.0
+ STATIC_OBJS=copy_string.o pri.o q921.o prisched.o q931.o pri_facility.o
+ DYNAMIC_OBJS=copy_string.lo pri.lo q921.lo prisched.lo q931.lo pri_facility.lo
+-CFLAGS=-Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g -fPIC $(ALERTING) $(LIBPRI_COUNTERS)
++CFLAGS=-Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g -fPIC $(ALERTING) $(LIBPRI_COUNTERS) $(LAYER2ALWAYSUP) $(FASTBUSYONBUSY) -DRELAX_TRB $(RELAXEDTIMERS)
+ INSTALL_PREFIX=$(DESTDIR)
+ INSTALL_BASE=/usr
+ SOFLAGS = -Wl,-hlibpri.so.1.0
+diff -urN libpri-1.4.1.orig/pri.c libpri-1.4.1/pri.c
+--- libpri-1.4.1.orig/pri.c	2006-07-06 23:11:37.000000000 +0200
++++ libpri-1.4.1/pri.c	2007-07-11 14:25:15.000000000 +0200
+@@ -1,24 +1,14 @@
+ /*
+  * libpri: An implementation of Primary Rate ISDN
+  *
+- * Written by Mark Spencer <markster at digium.com>
++ * Written by Mark Spencer <markster at linux-suppot.net>
+  *
+- * Copyright (C) 2001-2005, Digium
+- * All Rights Reserved.
++ * This program is confidential ( <- I dont think so! )
+  *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License as published by
+- * the Free Software Foundation; either version 2 of the License, or
+- * (at your option) any later version.
+- * 
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+- * GNU General Public License for more details.
+- * 
+- * You should have received a copy of the GNU General Public License
+- * along with this program; if not, write to the Free Software
+- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 
++ * Copyright (C) 2001, Linux Support Services, Inc.
++ * All Rights Reserved.
++ * Copyright (C) 2003-2006 Junghanns.NET GmbH
++ * Klaus-Peter Junghanns <kpj at junghanns.net>
+  *
+  */
+ 
+@@ -48,6 +38,14 @@
+ 		return "Network";
+ 	case PRI_CPE:
+ 		return "CPE";
++	case BRI_NETWORK:
++		return "Network";
++	case BRI_CPE:
++		return "CPE";
++	case BRI_NETWORK_PTMP:
++		return "Network (PtMP)";
++	case BRI_CPE_PTMP:
++		return "CPE (PtMP)";
+ 	default:
+ 		return "Invalid value";
+ 	}
+@@ -187,7 +185,7 @@
+ 	return res;
+ }
+ 
+-static struct pri *__pri_new(int fd, int node, int switchtype, struct pri *master, pri_io_cb rd, pri_io_cb wr, void *userdata)
++static struct pri *__pri_new(int fd, int node, int switchtype, struct pri *master, pri_io_cb rd, pri_io_cb wr, void *userdata, int span)
+ {
+ 	struct pri *p;
+ 	p = malloc(sizeof(struct pri));
+@@ -207,6 +205,8 @@
+ 		p->master = master;
+ 		p->callpool = &p->localpool;
+ 		pri_default_timers(p, switchtype);
++		p->debugfd = -1;
++		p->span = span;
+ #ifdef LIBPRI_COUNTERS
+ 		p->q921_rxcount = 0;
+ 		p->q921_txcount = 0;
+@@ -217,7 +217,7 @@
+ 			p->protodisc = GR303_PROTOCOL_DISCRIMINATOR;
+ 			p->sapi = Q921_SAPI_GR303_EOC;
+ 			p->tei = Q921_TEI_GR303_EOC_OPS;
+-			p->subchannel = __pri_new(-1, node, PRI_SWITCH_GR303_EOC_PATH, p, NULL, NULL, NULL);
++			p->subchannel = __pri_new(-1, node, PRI_SWITCH_GR303_EOC_PATH, p, NULL, NULL, NULL, span);
+ 			if (!p->subchannel) {
+ 				free(p);
+ 				p = NULL;
+@@ -226,7 +226,7 @@
+ 			p->protodisc = GR303_PROTOCOL_DISCRIMINATOR;
+ 			p->sapi = Q921_SAPI_GR303_TMC_CALLPROC;
+ 			p->tei = Q921_TEI_GR303_TMC_CALLPROC;
+-			p->subchannel = __pri_new(-1, node, PRI_SWITCH_GR303_TMC_SWITCHING, p, NULL, NULL, NULL);
++			p->subchannel = __pri_new(-1, node, PRI_SWITCH_GR303_TMC_SWITCHING, p, NULL, NULL, NULL, span);
+ 			if (!p->subchannel) {
+ 				free(p);
+ 				p = NULL;
+@@ -242,7 +242,7 @@
+ 		}
+ 		/* Start Q.921 layer, Wait if we're the network */
+ 		if (p)
+-			q921_start(p, p->localtype == PRI_CPE);
++			q921_start(p, p->localtype == PRI_CPE, 0);
+ 	}
+ 	return p;
+ }
+@@ -262,15 +262,16 @@
+ {
+ 	/* Restart Q.921 layer */
+ 	if (pri) {
+-		q921_reset(pri);
+-		q921_start(pri, pri->localtype == PRI_CPE);	
++// XXX		q921_reset(pri);
++//		q921_start(pri, pri->localtype == PRI_CPE);	
+ 	}
+ 	return 0;
+ }
+ 
+-struct pri *pri_new(int fd, int nodetype, int switchtype)
++
++struct pri *pri_new(int fd, int nodetype, int switchtype, int span)
+ {
+-	return __pri_new(fd, nodetype, switchtype, NULL, __pri_read, __pri_write, NULL);
++	return __pri_new(fd, nodetype, switchtype, NULL, __pri_read, __pri_write, NULL, span);
+ }
+ 
+ struct pri *pri_new_cb(int fd, int nodetype, int switchtype, pri_io_cb io_read, pri_io_cb io_write, void *userdata)
+@@ -279,7 +280,7 @@
+ 		io_read = __pri_read;
+ 	if (!io_write)
+ 		io_write = __pri_write;
+-	return __pri_new(fd, nodetype, switchtype, NULL, io_read, io_write, userdata);
++	return __pri_new(fd, nodetype, switchtype, NULL, io_read, io_write, userdata, -1);
+ }
+ 
+ void *pri_get_userdata(struct pri *pri)
+@@ -443,6 +444,15 @@
+ 	return;
+ }
+ 
++void pri_set_debug_fd(struct pri *pri, int fd)
++{
++	if (!pri)
++		return;
++	pri->debugfd = fd;
++	if (pri->subchannel)
++		pri_set_debug_fd(pri->subchannel, fd);
++}
++
+ int pri_acknowledge(struct pri *pri, q931_call *call, int channel, int info)
+ {
+ 	if (!pri || !call)
+@@ -486,6 +496,21 @@
+ 	return q931_notify(pri, call, channel, info);
+ }
+ 
++int pri_information_display(struct pri *pri, q931_call *call, char *display)
++{
++	if (!pri || !call)
++		return -1;
++	return q931_information_display(pri, call, display);
++}
++
++int pri_add_display(struct pri *pri, q931_call *call, char *display)
++{
++	if (!pri || !call)
++		return -1;
++	return q931_add_display(pri, call, display);
++}
++
++
+ void pri_destroycall(struct pri *pri, q931_call *call)
+ {
+ 	if (pri && call)
+@@ -507,6 +532,83 @@
+ 	return q931_connect(pri, call, channel, nonisdn);
+ }
+ 
++int pri_hold_acknowledge(struct pri *pri, q931_call *call)
++{
++	if (!pri || !call)
++		return -1;
++	return q931_hold_acknowledge(pri, call);
++}
++
++int pri_hold_reject(struct pri *pri, q931_call *call)
++{
++	if (!pri || !call)
++		return -1;
++	return q931_hold_reject(pri, call);
++}
++
++int pri_retrieve_acknowledge(struct pri *pri, q931_call *call, int channel)
++{
++	if (!pri || !call)
++		return -1;
++	return q931_retrieve_acknowledge(pri, call, channel);
++}
++
++int pri_retrieve_reject(struct pri *pri, q931_call *call)
++{
++	if (!pri || !call)
++		return -1;
++	return q931_retrieve_reject(pri, call);
++}
++
++int pri_suspend_acknowledge(struct pri *pri, q931_call *call, char *display)
++{
++	if (!pri || !call)
++		return -1;
++	return q931_suspend_acknowledge(pri, call, display);
++}
++
++int pri_suspend_reject(struct pri *pri, q931_call *call, char *display)
++{
++	if (!pri || !call)
++		return -1;
++	return q931_suspend_reject(pri, call, display);
++}
++
++int pri_resume_reject(struct pri *pri, q931_call *call, char *display)
++{
++	if (!pri || !call)
++		return -1;
++	return q931_resume_reject(pri, call, display);
++}
++
++int pri_resume_acknowledge(struct pri *pri, q931_call *call, int channel, char *display)
++{
++	if (!pri || !call)
++		return -1;
++	return q931_resume_acknowledge(pri, call, channel, display);
++}
++
++int pri_facility(struct pri *pri, q931_call *call, int operation, char *arguments)
++{
++	if (!pri || !call)
++		return -1;
<<Diff was trimmed, longer than 597 lines>>


More information about the pld-cvs-commit mailing list