mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	Add PacketCable NCS 1.0 support for Docsis/Eurodocsis networks
(closes issue #12950) Reported by: alea-soluciones Patches: ncs-pktccops-12950-r206803.patch uploaded by alea-soluciones (license 514) Tested by: alea-soluciones, adomjan, urtho, nahuelgreco git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@227049 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		
							
								
								
									
										2
									
								
								CHANGES
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								CHANGES
									
									
									
									
									
								
							| @@ -67,6 +67,8 @@ MGCP Changes | ||||
|  * Added ability to preset channel variables on indicated lines with the setvar | ||||
|    configuration option.  Also, clearvars=all resets the list of variables back | ||||
|    to none. | ||||
|  * PacketCable NCS 1.0 support has been added for Docsis/Eurodocsis Networks. | ||||
|    See configs/res_pktccops.conf for more information. | ||||
|  | ||||
| Applications | ||||
| ------------ | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -11,6 +11,11 @@ | ||||
| ;cos=3			; Sets 802.1p priority for signaling packets. | ||||
| ;cos_audio=5		; Sets 802.1p priority for RTP audio packets. | ||||
|  | ||||
| ;---------------------- DIGIT TIMEOUTS ---------------------------- | ||||
| firstdigittimeout = 30000 ; default 16000 = 16s | ||||
| gendigittimeout = 10000   ; default  8000 = 8s  | ||||
| matchdigittimeout = 5000  ; defaults 3000 = 3s | ||||
|  | ||||
| ;------------------------------ JITTER BUFFER CONFIGURATION -------------------------- | ||||
| ; jbenable = yes              ; Enables the use of a jitterbuffer on the receiving side of a | ||||
|                               ; MGCP channel. Defaults to "no". An enabled jitterbuffer will | ||||
| @@ -47,27 +52,27 @@ | ||||
|  | ||||
| ;; The MGCP channel supports the following service codes: | ||||
| ;; # - Transfer | ||||
| ;; *67 - Calling Number Delivery Blocking | ||||
| ;; *70 - Cancel Call Waiting | ||||
| ;; *72 - Call Forwarding Activation | ||||
| ;; *73 - Call Forwarding Deactivation | ||||
| ;; *78 - Do Not Disturb Activation | ||||
| ;; *79 - Do Not Disturb Deactivation | ||||
| ;; *67 - Calling Number Delivery Blocking  | ||||
| ;; *70 - Cancel Call Waiting  | ||||
| ;; *72 - Call Forwarding Activation  | ||||
| ;; *73 - Call Forwarding Deactivation  | ||||
| ;; *78 - Do Not Disturb Activation  | ||||
| ;; *79 - Do Not Disturb Deactivation  | ||||
| ;; *8 - Call pick-up | ||||
| ; | ||||
| ; known to work with Swissvoice IP10s | ||||
| ;[192.168.1.20] | ||||
| ;context=local | ||||
| ;host=192.168.1.20 | ||||
| ;callerid = "John Doe" <123> | ||||
| ; known to work with Swissvoice IP10s  | ||||
| ;[192.168.1.20]  | ||||
| ;context=local  | ||||
| ;host=192.168.1.20  | ||||
| ;callerid = "John Doe" <123>  | ||||
| ;callgroup=0      ; in the range from 0 to 63 | ||||
| ;pickupgroup=0    ; in the range from 0 to 63 | ||||
| ;nat=no | ||||
| ;threewaycalling=yes | ||||
| ;nat=no  | ||||
| ;threewaycalling=yes  | ||||
| ;transfer=yes     ; transfer requires threewaycalling=yes. Use FLASH to transfer | ||||
| ;callwaiting=yes  ; this might be a cause of trouble for ip10s | ||||
| ;cancallforward=yes | ||||
| ;line => aaln/1 | ||||
| ;cancallforward=yes  | ||||
| ;line => aaln/1  | ||||
| ; | ||||
|  | ||||
| ;[dph100] | ||||
| @@ -90,7 +95,7 @@ | ||||
| 				; 'documentation', or 'omit' | ||||
| ;context	= local | ||||
| ;host		= 192.168.1.20 | ||||
| ;wcardep	= aaln/*	; enables wildcard endpoint and sets it to 'aaln/*' | ||||
| ;wcardep	= aaln/*	; enables wildcard endpoint and sets it to 'aaln/*'  | ||||
| 				; another common format is '*' | ||||
| ;callerid 	= "Duane Cox" <123>	; now lets setup line 1 using per endpoint configuration... | ||||
| ;callwaiting	= no | ||||
| @@ -111,3 +116,20 @@ | ||||
| ;transfer	= no | ||||
| ;dtmfmode	= inband | ||||
| ;line => aaln/2			; now lets save this config to line2 aka aaln/2 | ||||
|  | ||||
| ; PacketCable | ||||
| ;[sbv5121e-mta.test.local] | ||||
| ;host        = 10.0.1.3 | ||||
| ;callwaiting = 1 | ||||
| ;canreinvite = 1 | ||||
| ;dtmfmode    = rfc2833 | ||||
| ;amaflags    = BILLING | ||||
| ;ncs         = yes ; Use NCS 1.0 signalling | ||||
| ;pktcgatealloc = yes ; Allocate DQOS gate on CMTS | ||||
| ;hangupongateremove = yes ; Hangup the channel if the CMTS close the gate | ||||
| ;callerid    = 3622622225 | ||||
| ;accountcode = test-3622622225 | ||||
| ;line        = aaln/1 | ||||
| ;callerid    = 3622622226 | ||||
| ;accountcode = test-3622622226 | ||||
| ;line        = aaln/2 | ||||
|   | ||||
							
								
								
									
										32
									
								
								configs/res_pktccops.conf.sample
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								configs/res_pktccops.conf.sample
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | ||||
| ; Sample res_pktccops.conf | ||||
|  | ||||
| [general] | ||||
| gateinfoperiod => 60 ; default 60s | ||||
| gatetimeout = 150 ; default 150 | ||||
| t1 => 250 ; default 250s | ||||
| t7 => 200 ; default 200s | ||||
| t8 => 300 ; default 300s | ||||
| keepalive => 60 ; default 60s | ||||
|  | ||||
| [teszt] | ||||
| host => 192.168.0.24 | ||||
| pool => 10.0.1.0 10.0.1.255 | ||||
| pool => 10.0.3.0 10.0.3.255 | ||||
| pool => 10.0.7.0 10.0.8.255 | ||||
| pool => 10.0.10.0 10.0.11.255 | ||||
|  | ||||
| [general] | ||||
| gateinfoperiod => 60 ; default 60s | ||||
| gatetimeout = 150 ; default 150 | ||||
| t1 => 250 ; default 250s | ||||
| t7 => 200 ; default 200s | ||||
| t8 => 300 ; default 300s | ||||
| keepalive => 60 ; default 60s | ||||
|  | ||||
| [test] | ||||
| host => 192.168.0.24 | ||||
| pool => 10.0.1.0 10.0.1.255 | ||||
| pool => 10.0.3.0 10.0.3.255 | ||||
| pool => 10.0.7.0 10.0.8.255 | ||||
| pool => 10.0.10.0 10.0.11.255 | ||||
|  | ||||
							
								
								
									
										82
									
								
								include/asterisk/pktccops.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								include/asterisk/pktccops.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,82 @@ | ||||
| /* | ||||
|  * Asterisk -- An open source telephony toolkit. | ||||
|  * | ||||
|  * Copyright (C) 2009, Attila Domjan | ||||
|  * | ||||
|  * Attila Domjan <attila.domjan.hu@gmail.com> | ||||
|  * | ||||
|  * See http://www.asterisk.org for more information about | ||||
|  * the Asterisk project. Please do not directly contact | ||||
|  * any of the maintainers of this project for assistance; | ||||
|  * the project provides a web site, mailing lists and IRC | ||||
|  * channels for your use. | ||||
|  * | ||||
|  * This program is free software, distributed under the terms of | ||||
|  * the GNU General Public License Version 2. See the LICENSE file | ||||
|  * at the top of the source tree. | ||||
|  */ | ||||
|  | ||||
| /*! \file | ||||
|  * | ||||
|  * \brief PacketCable COPS | ||||
|  *  | ||||
|  * \author Attila Domjan <attila.domjan.hu@gmail.com> | ||||
|  */ | ||||
|  | ||||
| #ifndef _ASTERISK_PKTCCOPS_H | ||||
| #define _ASTERISK_PKTCCOPS_H | ||||
|  | ||||
| #include "asterisk/optional_api.h" | ||||
|  | ||||
| #if defined(__cplusplus) || defined(c_plusplus) | ||||
| extern "C" { | ||||
| #endif | ||||
|  | ||||
| enum { | ||||
| 	GATE_SET, | ||||
| 	GATE_INFO, | ||||
| 	GATE_SET_HAVE_GATEID, | ||||
| 	GATE_DEL | ||||
| }; | ||||
|  | ||||
| enum { | ||||
| 	GATE_ALLOC_FAILED, | ||||
| 	GATE_ALLOC_PROGRESS, | ||||
| 	GATE_ALLOCATED, | ||||
| 	GATE_CLOSED, | ||||
| 	GATE_CLOSED_ERR, | ||||
| 	GATE_OPEN, | ||||
| 	GATE_DELETED, | ||||
| 	GATE_TIMEOUT | ||||
| }; | ||||
|  | ||||
| struct cops_gate { | ||||
| 	AST_LIST_ENTRY(cops_gate) list; | ||||
| 	uint32_t gateid; | ||||
| 	uint16_t trid; | ||||
| 	time_t in_transaction; | ||||
| 	uint32_t mta; | ||||
| 	int state; | ||||
| 	time_t allocated; | ||||
| 	time_t checked; | ||||
| 	time_t deltimer; | ||||
| 	struct cops_cmts *cmts; | ||||
| 	int (* got_dq_gi) (struct cops_gate *gate); | ||||
| 	int (* gate_remove) (struct cops_gate *gate); | ||||
| 	int (* gate_open) (struct cops_gate *gate); | ||||
| 	void *tech_pvt; | ||||
| }; | ||||
|  | ||||
|  | ||||
| AST_OPTIONAL_API(struct cops_gate *, ast_pktccops_gate_alloc, | ||||
| 	(int cmd,  struct cops_gate *gate, uint32_t mta, uint32_t actcount, | ||||
| 	 float bitrate, uint32_t psize, uint32_t ssip, uint16_t ssport, | ||||
| 	 int (* const got_dq_gi) (struct cops_gate *gate), | ||||
| 	 int (* const gate_remove) (struct cops_gate *gate)), | ||||
| 	{ return NULL; }); | ||||
|  | ||||
| #if defined(__cplusplus) || defined(c_plusplus) | ||||
| } | ||||
| #endif | ||||
|  | ||||
| #endif /* _ASTERISK_PKTCCOPS_H */ | ||||
							
								
								
									
										1483
									
								
								res/res_pktccops.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1483
									
								
								res/res_pktccops.c
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user