https://wiki.td-er.nl/api.php?action=feedcontributions&user=Gijs&feedformat=atomTD-er's Wiki - User contributions [en]2024-03-29T06:29:16ZUser contributionsMediaWiki 1.33.0https://wiki.td-er.nl/index.php?title=Our_Architecture&diff=2369Our Architecture2007-03-12T14:52:03Z<p>Gijs: </p>
<hr />
<div>[[image:whiteboard Fabio.jpg|550x356px]]<br />
<br />
<br />
From [http://www.gnugk.org/gnugk-manual-5.html#proxy Gnugk website]:<br />
<br />
''Call signaling messages may be passed in two ways. The first method is Direct Endpoint Call Signaling, in which case the call signaling messages are passed directly between the endpoints. The second method is Gatekeeper Routed Call Signaling. In this method, the call signaling messages are routed through the gatekeeper between the endpoints. The choice of which methods is used is made by the gatekeeper.''<br />
<br />
''When Gatekeeper Routed call signaling is used, the gatekeeper may choose whether to route the H.245 control channel and logical channels.''<br />
<br />
'''''Case 0''' The gatekeeper isn't present. The H225 protocol isn't used; instead the H323 terminals need to know each other explicitly (i.e. by means of ip address and port). The H.245 control channel and logical channels are established directly between the endpoints. ''<br />
<br />
'''''Case I''' The gatekeeper doesn't route them. The H.245 control channel and logical channels are established directly between the endpoints. ''<br />
<br />
'''''Case II''' The H.245 control channel is routed between the endpoints through the gatekeeper, while the logical channels are established directly between the endpoints. ''<br />
<br />
'''''Case III''' The gatekeeper routes the H.245 control channel, as well as all logical channels, including RTP/RTCP for audio and video, and T.120 channel for data. In this case, no traffic is passed directly between the endpoints. This is usually called an H.323 Proxy, which can be regarded as an H.323-H.323 gateway.<br />
''<br />
<br />
To make H323 -> SIP calls we are interested in '''Case III'''. We haven't accomplished anything in this area (yet).</div>Gijshttps://wiki.td-er.nl/index.php?title=H323_analysis&diff=2366H323 analysis2007-03-12T14:32:19Z<p>Gijs: /* H323-modes explained */</p>
<hr />
<div>'''H.323''' is a standard that specifies the components, protocols and procedures that provide multimedia communication services: ''real-time audio'', ''video'', and ''data communications'' or any combination of these elements over packet networks, including Internet protocol (IP) based networks.<br />
<br />
H.323 is an International Telecommunications Union (ITU) standard that provides specification for computers, equipment, and services for multimedia communication over networks that do not provide a guaranteed quality of service. H.323 is part of a family of ITU-T recommendations called H.32x that provides multimedia communication services over a variety of networks.<br />
<br />
H.323 was originally created to provide a mechanism for transporting multimedia applications over LANs but it has rapidly evolved to address the growing needs of VoIP networks. One strength of H.323 was the relatively early availability of a set of standards, not only defining the basic call model, but in addition the supplementary services, needed to address business communication expectations.<br />
H.323 was the first VoIP standard to adopt the Internet Engineering Task Force (IETF) standard Real-Time Control Protocol (RTCP) to transport audio and video over IP networks, with additional protocols for call signaling, and data and audiovisual communications.<br />
<br />
The H.323 standard specifies four kinds of components, which, when networked together, provide the point-to-point and point-to-multipoint multimedia-communication services: <br />
<br />
== Terminal ==<br />
<br />
An H.323 terminal is an endpoint in the LAN that participates in real-time, two-way communications with another H.323 terminal, gateway, or multipoint control unit (MCU). A terminal must support audio communication and can also support audio with video, audio with data, or a combination of all three.<br />
<br />
H.323 terminal options include support user equipment interfaces, audio and video CODECs, the T.120 data protocols, MCU capabilities and an H.225 component called RAS (Registration/Admission/Status) which is a protocol used to communicate with a Gatekeeper.<br />
<br />
# '''User equipment interfaces''': The set of cameras, screens, microphones, speakers and data applications with their respective interfaces.<br />
# '''Audio Codec''': Each terminal will have an audio codec, to codify and to decodify vocal signals (G.711), and they could transmit and receive a-law and μ-law. Optionally, a terminal, could codify and decodify vocal signals. The H.323 terminal can, also optionally, send more of one audio channel at the same time, for example, in order to transmit 2 different languages <br />
# '''Video Codec''': In H.323 terminals is optional.<br />
# '''Data Channel''': One or more data channels are optional. They could be in one direction or in both.<br />
#''' Reception Path latency''': It includes the latency added to the packets to maintain the synchronization, and to consider the fluctuation in the packet arrivals. Usually it is not used in transmission but in the reception, to add the necessary latency, for example, to obtain the synchronization between the movement of the lips and the audio signal in a videoconference.<br />
#''' System Control Unit''': Gives the terminal signaling. There are three different functions: H.245 Control function, H.225 call signalling function and RAS signaling function.<br />
#* ''H.245 Control function'': The H.245 logical channel is used to take messages end-to-end of the H.323 protocol. It takes care to negotiate the capacities (bandwidth), to set up and set down the logical channels and to send the flow control messages. In each call, there will be any number of logical channels of each type (audio, video or data) but only one control logical channel, channel 0.<br />
#* ''H.225 Call signalling function'': It uses one logical channel of signaling to send and receive establishment and end session messages between two H.323 end points. The channel is independent of the H.245 control channel. The H.245 logical channel opening and closing procedures are not used to establish the signaling channel. It is opened before the establishment of the H.245 control channel and any other logical channel. It can settle down terminal to terminal or terminal to gatekeeper.<br />
#* ''RAS Control function (Register, Admission, Status)'': It uses a logical channel of RAS signaling to carry out registry, admission, situation and bandwidth changes procedures between end points (terminal, gateway..) and gatekeeper. It is only used when a gatekeeper is present. The RAS signaling channel is independent of the call signaling channel, and of the H.245 control channel. The H.245 logical channel opening and closing procedures are not used to establish the RAS signaling channel. The RAS control function channel is opened before the establishment of the any other logical channel<br />
#''' H.225 Layer''': It is in charge to give format to the video, audio, and transmitted data packets. In addition, it also takes care of the packet alignment, the sequential number and the error detection. <br />
# '''Packet network interface''': It is specific of each implementation. This must provide the services described in the H.225 recommendation. That means that the reliable end-to-end service (for example, TCP) is mandatory for the H.245 control channel, the data channels and call signaling channels.<br />
<br />
The non reliable end-to-end service (UDP, IPX) is mandatory for the audio channels, the video channels and the RAS channel These services can be duplex or simplex and unicast or multicast depending on the application, the terminals capacities and the network configuration.<br />
<br />
== Gateway ==<br />
<br />
H.323 conference gateways make H.323 terminals on a LAN available to H.323 terminals on a wide area network (WAN) or another H.323 gateway. <br />
<br />
These devices provide many services, including the needed translation function between H.323 conferencing endpoints on the LAN and other ITU-compliant terminals on other ITU-compliant circuit-switched and packet-switched networks.<br />
<br />
These services include the translation mechanism for call signaling (for example H.245 to H.242), data transmission (for example H.225.0 to H.221), and audio and video transcoding.<br />
<br />
The Gateway also does the translation between audio and video CODECs if this is needed as well as performs call setup and clearing.<br />
<br />
Gateways satisfy part of the interoperability vision of H.32x products due to the ability to connect to each other.<br />
<br />
Gateways can serve the following purposes:<br />
<br />
* To bridge an H.323 call to another type of call, such as a telephone.<br />
* To bridge H.323 calls to H.320, which is audio and video transmission over Integrated Services Digital Network (ISDN) .<br />
* To bridge H.323 calls to H.324, which is audio and video transmission over standard telephone lines.<br />
* To bridge different networks; an organization could put a bridge on a firewall to connect an internal corporate network with external networks to accept incoming calls.<br />
<br />
In this case, gateway functions are similar to an MCU for connecting people over networks. Typically, though, the gateway is the translation mechanism in a point-to-point connection, where only one endpoint is an H.323 device. On the other hand, an MCU typically connects many H.323 devices in a multipoint conference.<br />
<br />
== Gatekeeper ==<br />
<br />
Gatekeepers provide network services to H.323 terminals, MCUs, and gateways. H.323 devices register with gatekeepers to send and receive H.323 calls. Gatekeepers give permission to make or accept a call based on a variety of factors.<br />
<br />
Gatekeepers can provide network services such as:<br />
<br />
* Controlling the number and type of connections allowed across the network.<br />
* Helping to route a call to the correct destination.<br />
* Determining and maintaining the network address for incoming calls.<br />
<br />
Gatekeepers perform two important functions.<br />
The first is address translation services between aliases for terminals and gateways and IP or IPX addresses.<br />
<br />
The second Gatekeeper function is bandwidth management. For instance, if a LAN manager-specified threshold for the number of simultaneous conferences on the LAN has been reached, the Gatekeeper can refuse to make any more connections.<br />
<br />
The collection of all Terminals, Gateways, and Multipoint Control Units managed by a single gatekeeper is known as an H.323 Zone.<br />
<br />
A Gatekeeper takes care of the following services if is present (it is not always necessary):<br />
<br />
*''Admission control'': The gatekeeper can deny calls from a terminal because they do not have permission or they do not have permission at that moment of the day or some other criteria. Admissions Control may also be a null function which admits all requests.<br />
* ''Bandwidth control'': The Gatekeeper controls the number of H.323 terminals which can be simultaneously connected and to deny calls if the bandwidth is too low. <br />
* ''Zone Management'': The Gatekeeper provides the above functions for terminals, MCUs, and Gateways which have registered within its Zone of control.<br />
<br />
== Multipoint Control Unit ==<br />
<br />
A Multipoint Control Unit (MCU) in an H.323 conference, also called conferencing servers or conferencing bridges, is an endpoint on the H.323 zone that allows three or more H.323 terminals and gateways to connect and participate in a multipoint conference.<br />
<br />
An MCU includes both multipoint controllers, which manage the H.323 terminal functions and capabilities in a multipoint conference, and multipoint processors, which process the audio, video, and data streams between H.323 terminals. <br />
<br />
An MCU can also connect two terminals in a point-to-point conference that can later develop into a multipoint conference.<br />
<br />
=== Multipoint Controller===<br />
A multipoint controller is a component of H.323 that provides negotiation capacity with all the terminals to carry out different communication levels. Also, it can control conference resources such as video multicasting. <br />
<br />
=== Multipoint Processor===<br />
A multipoint processor is a hardware and specialized software component of H.323. It mixes, exchanges and processes audio, video and/or data flow for the participants of a multipoint conference, in such a way that the terminal processors are not used heavily. The multipoint processor can process an only average flow or multiple average flows depending on the supported conference.<br />
<br />
==H.323 Proxy==<br />
<br />
An H.323 proxy server is a proxy specifically designed for the H.323 protocol that examines packets between two communicating applications. Proxies are able to determine the destination of a call and perform call-connection steps, if necessary. <br />
<br />
H.323 proxies perform the following key functions: <br />
* Voice terminals that do not support Resource Reservation Protocol (RSVP) can connect through remote access or local area networks (LANs) with relatively reliable quality of service (QoS) to the proxy. Pairs of proxies can then be employed to develop tunnels across the IP network. <br />
* Proxies support routing H.323 traffic separately from ordinary data traffic using application-specific routing (ASR). <br />
* Proxies are compatible with network address translation functions in gateways or gatekeepers, enabling H.323 to be deployed in networks using private address space. <br />
<br />
<br />
<br />
== H.323 Protocol stack ==<br />
([http://www.en.voipforo.com/H323/H323_protocolos_stack.php source])<br />
<br />
The most known protocols used in H.323 are:<br />
<br />
* RTP/RTCP (Real-Time Transport Protocol / Real-Time Transport Control Protocol): Internet-standard protocol for the transport of real-time data, including audio and video. RTP is used in virtually all voice-over-IP architectures, for videoconferencing, media-on-demand, and other applications. A thin protocol, it supports content identification, timing reconstruction, and detection of lost packets. <br />
* RAS (Registration, Admission and Status): A protocol for Registration, Admission and Status. In an H.323 audio or video system, the RAS is a control channel over which H.225.0 signaling messages are sent. <br />
* H225.0: Protocol used to describe call signaling, the media (audio and video), the stream packetization, media stream synchronization and control message formats<br />
<br />
* H.245: Control protocol for multimedia communication, describes the messages and procedures used for opening and closing logical channels for audio, video and data, capability exchange, control and indications<br />
<br />
It manages the following functionalities:<br />
<br />
# Interchange of capacities: Terminals define the codecs they have and they send it to the other end point.<br />
# Opening and closing logical channels: H.323 audio and video channels are point to point and unidirectional. Therefore they will have to create at least two of these channels. This is responsibility of H.245. <br />
# Flow Control when there is a problem.<br />
# A lot of different small functions. <br />
<br />
* Q.931: A protocol for Call Signaling, consisting of Setup, Teardown and Disengage. Q.931 is included in the H.225.0 Recommendation<br />
* RSVP (Resource ReSerVation Protocol): Protocol for reserving network resources to provide guaranteed application QoS (Quality of Service)<br />
* T.120: Standard for data conferencing and conference control for interactive multimedia communication - multipoint & point-to-point. <br />
<br />
The following codecs are recommended by the H.323 standard (for more details see [[H323 Audio and Video Codecs]]):<br />
<br />
* G.711: ITU-TSS recommendation "Pulse code modulation (PCM) of voice frequencies". This audio standard is mandatory for all video conferencing systems. It requires a data rate of 56 or 64 kbit/s.<br />
* H.261y H.263: Video codecs of H.323 standard. However, other ones can be used.<br />
<br />
== H.323 clients ==<br />
For some possible H323 (and SIP) VoIP clients you can check [http://forskningsnett.uninett.no/voip/voipclients.html this list]<br />
The only two that support both H323 and linux are:<br />
* [http://www.gnomemeeting.org/index.php?rub=5&path=sources/sources Ekiga] (see ekiga section)<br />
* [http://www.sjlabs.com/sjp.html SJPhone] (not explored by us yet)<br />
<br />
Another option is the commandline [http://packages.debian.org/unstable/comm/ohphone ohphone], directly derived from the [[OpenH323 project]] protoclo stack by the same developers team. <br />
It has no graphical interface but it's recommended for testing purposes.<br />
<br />
=== Ekiga ===<br />
<br />
Ekiga can be downloaded from the [http://www.gnomemeeting.org ekiga] page. The OPAL and PWLIB libraries have to be installed first. This is a tedious and time comsuming process (lots of compiling needed). Our own Ekiga experiences can be found at [[Ekiga]]<br />
<br />
=== Kphone ===<br />
<br />
Kphone is another SIP client used to shortly test the basic setup of Asterisk.<br />
<br />
=== Gnomemeeting ===<br />
<br />
Gnomemeeting is the predecessor of Ekiga. Configuration in [[Gnomemeeting]] section.<br />
<br />
=== SJPhone ===<br />
<br />
Very straightforward download from [http://www.sjlabs.com/sjp.html SJ Labs (VoIP software)]. You get the following interface.<br />
<br />
[[Image:shermafdruksjphone.png]]<br />
<br />
Note:<br />
At least the Windows version of SJ-phone is still using SIP, even when this is disabled in the configuration.<br />
When using 2 instances of SJphone, to call eachother, the connection is true H323.<br />
<br />
== H323 and TrixBox ==<br />
<br />
We tried to look up some information on H323 and TrixBox. From the information on the web it seems that this is a tricky topic. Many questions, few answers. People seem to have trouble with it. I haven't been through all the correspondence on the TrixBox forum but it seems that most people have a hard time even setting up a connection (lots of configuring) and when they do succeed the connection dies after 15-30 seconds. We will look into this a bit more tomorrow.<br />
<br />
== Example H.323 call ==<br />
([http://www.en.voipforo.com/H323/H323_example.php Source])<br />
<br />
In the following example we could see a H.323 call. The different colors show different protocolos.<br />
<br />
[[image:H323-communication-timeline.gif|center]]<br />
<br />
A H.323 call has 4 different processes:<br />
<br />
===Setup===<br />
<br />
* Terminal 1 register itself with the gatekeeper using the RAS protocol (Register, admisaion, status) sending an ARQ message and receiving an ACF message.<br />
* Using H.225 protocol (used for setup and release of the call) terminal T1 sends a SETUP message to T2 requesting a connection. This message contains the IP address, port and alias of the calling user or the IP address and port of the called user. <br />
* T2 sends a CALL PROCEEDING message warning on the attempt to establish a call<br />
* Now, T2 terminal must register itself in the gatekeeper as T1 previously do.<br />
* Alerting message indicates the beginning of tone generation phase.<br />
* And finally, CONNECT message shows the beginning of the connection.<br />
<br />
===Control Signalling===<br />
<br />
In this phase a negotiation using H.245 protocol is opened (conference control), the interchange of the messages (request and answer) between both terminals establishes who will be the master and who the slave, the capacities of the participants and the audio and video codecs to be used. When the negotiation finishes the communication channel is opened (IP addresses, port).<br />
<br />
The main H.245 messages used in this step are:<br />
* TerminalCapabilitySet (TCS). Message capabilities supported by the terminals that take part in a call<br />
* OpenLogicalChannel (OLC). Message to open the logical channel which contains information to allow the reception and codification of the data. It contains information of the data type that will be sent.<br />
<br />
===Audio===<br />
Terminals start the communication using the RTP/RTCP protocol.<br />
<br />
===Call Release===<br />
* The calling or the called terminal can initiate the ending process using the CloseLogicalChannel and EndSessionComand messages to finish the call using again H.245. <br />
* Then using H.225 the connection is closed with the RELEASE COMPLETE message.<br />
* And finally the registration of the terminals in the gatekeeper are cleared using RAS protocol.<br />
<br />
== H323-modes explained ==<br />
[[image:whiteboard Fabio.jpg|550x356px]]<br />
<br />
== H323-related links ==<br />
* [http://www.voip-info.org/wiki/view/Asterisk+H323+channels H.323 for Asterisk] - Existing implementations.<br />
* [http://www.trixbox.org/modules/newbb/viewforum.php?forum=6 H.323 topics] - Various topics on Trixbox-forum.<br />
** [http://www.trixbox.org/modules/newbb/viewtopic.php?topic_id=2865&forum=6 here is the working configuration & tips for oh323] - a topic.<br />
* [[Links#H.323_Links|More H.323 links]] on the Links-page.<br />
* [http://www.asteriskguru.com/tutorials/sjphone_softphone.html Configuration Sjphone]</div>Gijshttps://wiki.td-er.nl/index.php?title=H323_analysis&diff=2365H323 analysis2007-03-12T14:30:45Z<p>Gijs: /* H323-modes explained */</p>
<hr />
<div>'''H.323''' is a standard that specifies the components, protocols and procedures that provide multimedia communication services: ''real-time audio'', ''video'', and ''data communications'' or any combination of these elements over packet networks, including Internet protocol (IP) based networks.<br />
<br />
H.323 is an International Telecommunications Union (ITU) standard that provides specification for computers, equipment, and services for multimedia communication over networks that do not provide a guaranteed quality of service. H.323 is part of a family of ITU-T recommendations called H.32x that provides multimedia communication services over a variety of networks.<br />
<br />
H.323 was originally created to provide a mechanism for transporting multimedia applications over LANs but it has rapidly evolved to address the growing needs of VoIP networks. One strength of H.323 was the relatively early availability of a set of standards, not only defining the basic call model, but in addition the supplementary services, needed to address business communication expectations.<br />
H.323 was the first VoIP standard to adopt the Internet Engineering Task Force (IETF) standard Real-Time Control Protocol (RTCP) to transport audio and video over IP networks, with additional protocols for call signaling, and data and audiovisual communications.<br />
<br />
The H.323 standard specifies four kinds of components, which, when networked together, provide the point-to-point and point-to-multipoint multimedia-communication services: <br />
<br />
== Terminal ==<br />
<br />
An H.323 terminal is an endpoint in the LAN that participates in real-time, two-way communications with another H.323 terminal, gateway, or multipoint control unit (MCU). A terminal must support audio communication and can also support audio with video, audio with data, or a combination of all three.<br />
<br />
H.323 terminal options include support user equipment interfaces, audio and video CODECs, the T.120 data protocols, MCU capabilities and an H.225 component called RAS (Registration/Admission/Status) which is a protocol used to communicate with a Gatekeeper.<br />
<br />
# '''User equipment interfaces''': The set of cameras, screens, microphones, speakers and data applications with their respective interfaces.<br />
# '''Audio Codec''': Each terminal will have an audio codec, to codify and to decodify vocal signals (G.711), and they could transmit and receive a-law and μ-law. Optionally, a terminal, could codify and decodify vocal signals. The H.323 terminal can, also optionally, send more of one audio channel at the same time, for example, in order to transmit 2 different languages <br />
# '''Video Codec''': In H.323 terminals is optional.<br />
# '''Data Channel''': One or more data channels are optional. They could be in one direction or in both.<br />
#''' Reception Path latency''': It includes the latency added to the packets to maintain the synchronization, and to consider the fluctuation in the packet arrivals. Usually it is not used in transmission but in the reception, to add the necessary latency, for example, to obtain the synchronization between the movement of the lips and the audio signal in a videoconference.<br />
#''' System Control Unit''': Gives the terminal signaling. There are three different functions: H.245 Control function, H.225 call signalling function and RAS signaling function.<br />
#* ''H.245 Control function'': The H.245 logical channel is used to take messages end-to-end of the H.323 protocol. It takes care to negotiate the capacities (bandwidth), to set up and set down the logical channels and to send the flow control messages. In each call, there will be any number of logical channels of each type (audio, video or data) but only one control logical channel, channel 0.<br />
#* ''H.225 Call signalling function'': It uses one logical channel of signaling to send and receive establishment and end session messages between two H.323 end points. The channel is independent of the H.245 control channel. The H.245 logical channel opening and closing procedures are not used to establish the signaling channel. It is opened before the establishment of the H.245 control channel and any other logical channel. It can settle down terminal to terminal or terminal to gatekeeper.<br />
#* ''RAS Control function (Register, Admission, Status)'': It uses a logical channel of RAS signaling to carry out registry, admission, situation and bandwidth changes procedures between end points (terminal, gateway..) and gatekeeper. It is only used when a gatekeeper is present. The RAS signaling channel is independent of the call signaling channel, and of the H.245 control channel. The H.245 logical channel opening and closing procedures are not used to establish the RAS signaling channel. The RAS control function channel is opened before the establishment of the any other logical channel<br />
#''' H.225 Layer''': It is in charge to give format to the video, audio, and transmitted data packets. In addition, it also takes care of the packet alignment, the sequential number and the error detection. <br />
# '''Packet network interface''': It is specific of each implementation. This must provide the services described in the H.225 recommendation. That means that the reliable end-to-end service (for example, TCP) is mandatory for the H.245 control channel, the data channels and call signaling channels.<br />
<br />
The non reliable end-to-end service (UDP, IPX) is mandatory for the audio channels, the video channels and the RAS channel These services can be duplex or simplex and unicast or multicast depending on the application, the terminals capacities and the network configuration.<br />
<br />
== Gateway ==<br />
<br />
H.323 conference gateways make H.323 terminals on a LAN available to H.323 terminals on a wide area network (WAN) or another H.323 gateway. <br />
<br />
These devices provide many services, including the needed translation function between H.323 conferencing endpoints on the LAN and other ITU-compliant terminals on other ITU-compliant circuit-switched and packet-switched networks.<br />
<br />
These services include the translation mechanism for call signaling (for example H.245 to H.242), data transmission (for example H.225.0 to H.221), and audio and video transcoding.<br />
<br />
The Gateway also does the translation between audio and video CODECs if this is needed as well as performs call setup and clearing.<br />
<br />
Gateways satisfy part of the interoperability vision of H.32x products due to the ability to connect to each other.<br />
<br />
Gateways can serve the following purposes:<br />
<br />
* To bridge an H.323 call to another type of call, such as a telephone.<br />
* To bridge H.323 calls to H.320, which is audio and video transmission over Integrated Services Digital Network (ISDN) .<br />
* To bridge H.323 calls to H.324, which is audio and video transmission over standard telephone lines.<br />
* To bridge different networks; an organization could put a bridge on a firewall to connect an internal corporate network with external networks to accept incoming calls.<br />
<br />
In this case, gateway functions are similar to an MCU for connecting people over networks. Typically, though, the gateway is the translation mechanism in a point-to-point connection, where only one endpoint is an H.323 device. On the other hand, an MCU typically connects many H.323 devices in a multipoint conference.<br />
<br />
== Gatekeeper ==<br />
<br />
Gatekeepers provide network services to H.323 terminals, MCUs, and gateways. H.323 devices register with gatekeepers to send and receive H.323 calls. Gatekeepers give permission to make or accept a call based on a variety of factors.<br />
<br />
Gatekeepers can provide network services such as:<br />
<br />
* Controlling the number and type of connections allowed across the network.<br />
* Helping to route a call to the correct destination.<br />
* Determining and maintaining the network address for incoming calls.<br />
<br />
Gatekeepers perform two important functions.<br />
The first is address translation services between aliases for terminals and gateways and IP or IPX addresses.<br />
<br />
The second Gatekeeper function is bandwidth management. For instance, if a LAN manager-specified threshold for the number of simultaneous conferences on the LAN has been reached, the Gatekeeper can refuse to make any more connections.<br />
<br />
The collection of all Terminals, Gateways, and Multipoint Control Units managed by a single gatekeeper is known as an H.323 Zone.<br />
<br />
A Gatekeeper takes care of the following services if is present (it is not always necessary):<br />
<br />
*''Admission control'': The gatekeeper can deny calls from a terminal because they do not have permission or they do not have permission at that moment of the day or some other criteria. Admissions Control may also be a null function which admits all requests.<br />
* ''Bandwidth control'': The Gatekeeper controls the number of H.323 terminals which can be simultaneously connected and to deny calls if the bandwidth is too low. <br />
* ''Zone Management'': The Gatekeeper provides the above functions for terminals, MCUs, and Gateways which have registered within its Zone of control.<br />
<br />
== Multipoint Control Unit ==<br />
<br />
A Multipoint Control Unit (MCU) in an H.323 conference, also called conferencing servers or conferencing bridges, is an endpoint on the H.323 zone that allows three or more H.323 terminals and gateways to connect and participate in a multipoint conference.<br />
<br />
An MCU includes both multipoint controllers, which manage the H.323 terminal functions and capabilities in a multipoint conference, and multipoint processors, which process the audio, video, and data streams between H.323 terminals. <br />
<br />
An MCU can also connect two terminals in a point-to-point conference that can later develop into a multipoint conference.<br />
<br />
=== Multipoint Controller===<br />
A multipoint controller is a component of H.323 that provides negotiation capacity with all the terminals to carry out different communication levels. Also, it can control conference resources such as video multicasting. <br />
<br />
=== Multipoint Processor===<br />
A multipoint processor is a hardware and specialized software component of H.323. It mixes, exchanges and processes audio, video and/or data flow for the participants of a multipoint conference, in such a way that the terminal processors are not used heavily. The multipoint processor can process an only average flow or multiple average flows depending on the supported conference.<br />
<br />
==H.323 Proxy==<br />
<br />
An H.323 proxy server is a proxy specifically designed for the H.323 protocol that examines packets between two communicating applications. Proxies are able to determine the destination of a call and perform call-connection steps, if necessary. <br />
<br />
H.323 proxies perform the following key functions: <br />
* Voice terminals that do not support Resource Reservation Protocol (RSVP) can connect through remote access or local area networks (LANs) with relatively reliable quality of service (QoS) to the proxy. Pairs of proxies can then be employed to develop tunnels across the IP network. <br />
* Proxies support routing H.323 traffic separately from ordinary data traffic using application-specific routing (ASR). <br />
* Proxies are compatible with network address translation functions in gateways or gatekeepers, enabling H.323 to be deployed in networks using private address space. <br />
<br />
<br />
<br />
== H.323 Protocol stack ==<br />
([http://www.en.voipforo.com/H323/H323_protocolos_stack.php source])<br />
<br />
The most known protocols used in H.323 are:<br />
<br />
* RTP/RTCP (Real-Time Transport Protocol / Real-Time Transport Control Protocol): Internet-standard protocol for the transport of real-time data, including audio and video. RTP is used in virtually all voice-over-IP architectures, for videoconferencing, media-on-demand, and other applications. A thin protocol, it supports content identification, timing reconstruction, and detection of lost packets. <br />
* RAS (Registration, Admission and Status): A protocol for Registration, Admission and Status. In an H.323 audio or video system, the RAS is a control channel over which H.225.0 signaling messages are sent. <br />
* H225.0: Protocol used to describe call signaling, the media (audio and video), the stream packetization, media stream synchronization and control message formats<br />
<br />
* H.245: Control protocol for multimedia communication, describes the messages and procedures used for opening and closing logical channels for audio, video and data, capability exchange, control and indications<br />
<br />
It manages the following functionalities:<br />
<br />
# Interchange of capacities: Terminals define the codecs they have and they send it to the other end point.<br />
# Opening and closing logical channels: H.323 audio and video channels are point to point and unidirectional. Therefore they will have to create at least two of these channels. This is responsibility of H.245. <br />
# Flow Control when there is a problem.<br />
# A lot of different small functions. <br />
<br />
* Q.931: A protocol for Call Signaling, consisting of Setup, Teardown and Disengage. Q.931 is included in the H.225.0 Recommendation<br />
* RSVP (Resource ReSerVation Protocol): Protocol for reserving network resources to provide guaranteed application QoS (Quality of Service)<br />
* T.120: Standard for data conferencing and conference control for interactive multimedia communication - multipoint & point-to-point. <br />
<br />
The following codecs are recommended by the H.323 standard (for more details see [[H323 Audio and Video Codecs]]):<br />
<br />
* G.711: ITU-TSS recommendation "Pulse code modulation (PCM) of voice frequencies". This audio standard is mandatory for all video conferencing systems. It requires a data rate of 56 or 64 kbit/s.<br />
* H.261y H.263: Video codecs of H.323 standard. However, other ones can be used.<br />
<br />
== H.323 clients ==<br />
For some possible H323 (and SIP) VoIP clients you can check [http://forskningsnett.uninett.no/voip/voipclients.html this list]<br />
The only two that support both H323 and linux are:<br />
* [http://www.gnomemeeting.org/index.php?rub=5&path=sources/sources Ekiga] (see ekiga section)<br />
* [http://www.sjlabs.com/sjp.html SJPhone] (not explored by us yet)<br />
<br />
Another option is the commandline [http://packages.debian.org/unstable/comm/ohphone ohphone], directly derived from the [[OpenH323 project]] protoclo stack by the same developers team. <br />
It has no graphical interface but it's recommended for testing purposes.<br />
<br />
=== Ekiga ===<br />
<br />
Ekiga can be downloaded from the [http://www.gnomemeeting.org ekiga] page. The OPAL and PWLIB libraries have to be installed first. This is a tedious and time comsuming process (lots of compiling needed). Our own Ekiga experiences can be found at [[Ekiga]]<br />
<br />
=== Kphone ===<br />
<br />
Kphone is another SIP client used to shortly test the basic setup of Asterisk.<br />
<br />
=== Gnomemeeting ===<br />
<br />
Gnomemeeting is the predecessor of Ekiga. Configuration in [[Gnomemeeting]] section.<br />
<br />
=== SJPhone ===<br />
<br />
Very straightforward download from [http://www.sjlabs.com/sjp.html SJ Labs (VoIP software)]. You get the following interface.<br />
<br />
[[Image:shermafdruksjphone.png]]<br />
<br />
Note:<br />
At least the Windows version of SJ-phone is still using SIP, even when this is disabled in the configuration.<br />
When using 2 instances of SJphone, to call eachother, the connection is true H323.<br />
<br />
== H323 and TrixBox ==<br />
<br />
We tried to look up some information on H323 and TrixBox. From the information on the web it seems that this is a tricky topic. Many questions, few answers. People seem to have trouble with it. I haven't been through all the correspondence on the TrixBox forum but it seems that most people have a hard time even setting up a connection (lots of configuring) and when they do succeed the connection dies after 15-30 seconds. We will look into this a bit more tomorrow.<br />
<br />
== Example H.323 call ==<br />
([http://www.en.voipforo.com/H323/H323_example.php Source])<br />
<br />
In the following example we could see a H.323 call. The different colors show different protocolos.<br />
<br />
[[image:H323-communication-timeline.gif|center]]<br />
<br />
A H.323 call has 4 different processes:<br />
<br />
===Setup===<br />
<br />
* Terminal 1 register itself with the gatekeeper using the RAS protocol (Register, admisaion, status) sending an ARQ message and receiving an ACF message.<br />
* Using H.225 protocol (used for setup and release of the call) terminal T1 sends a SETUP message to T2 requesting a connection. This message contains the IP address, port and alias of the calling user or the IP address and port of the called user. <br />
* T2 sends a CALL PROCEEDING message warning on the attempt to establish a call<br />
* Now, T2 terminal must register itself in the gatekeeper as T1 previously do.<br />
* Alerting message indicates the beginning of tone generation phase.<br />
* And finally, CONNECT message shows the beginning of the connection.<br />
<br />
===Control Signalling===<br />
<br />
In this phase a negotiation using H.245 protocol is opened (conference control), the interchange of the messages (request and answer) between both terminals establishes who will be the master and who the slave, the capacities of the participants and the audio and video codecs to be used. When the negotiation finishes the communication channel is opened (IP addresses, port).<br />
<br />
The main H.245 messages used in this step are:<br />
* TerminalCapabilitySet (TCS). Message capabilities supported by the terminals that take part in a call<br />
* OpenLogicalChannel (OLC). Message to open the logical channel which contains information to allow the reception and codification of the data. It contains information of the data type that will be sent.<br />
<br />
===Audio===<br />
Terminals start the communication using the RTP/RTCP protocol.<br />
<br />
===Call Release===<br />
* The calling or the called terminal can initiate the ending process using the CloseLogicalChannel and EndSessionComand messages to finish the call using again H.245. <br />
* Then using H.225 the connection is closed with the RELEASE COMPLETE message.<br />
* And finally the registration of the terminals in the gatekeeper are cleared using RAS protocol.<br />
<br />
== H323-modes explained ==<br />
[[image:whiteboard Fabio.jpg|width=550]]<br />
<br />
== H323-related links ==<br />
* [http://www.voip-info.org/wiki/view/Asterisk+H323+channels H.323 for Asterisk] - Existing implementations.<br />
* [http://www.trixbox.org/modules/newbb/viewforum.php?forum=6 H.323 topics] - Various topics on Trixbox-forum.<br />
** [http://www.trixbox.org/modules/newbb/viewtopic.php?topic_id=2865&forum=6 here is the working configuration & tips for oh323] - a topic.<br />
* [[Links#H.323_Links|More H.323 links]] on the Links-page.<br />
* [http://www.asteriskguru.com/tutorials/sjphone_softphone.html Configuration Sjphone]</div>Gijshttps://wiki.td-er.nl/index.php?title=File:Whiteboard_Fabio.jpg&diff=2364File:Whiteboard Fabio.jpg2007-03-12T14:29:54Z<p>Gijs: </p>
<hr />
<div></div>Gijshttps://wiki.td-er.nl/index.php?title=H323_analysis&diff=2363H323 analysis2007-03-12T14:29:19Z<p>Gijs: /* H323-related links */</p>
<hr />
<div>'''H.323''' is a standard that specifies the components, protocols and procedures that provide multimedia communication services: ''real-time audio'', ''video'', and ''data communications'' or any combination of these elements over packet networks, including Internet protocol (IP) based networks.<br />
<br />
H.323 is an International Telecommunications Union (ITU) standard that provides specification for computers, equipment, and services for multimedia communication over networks that do not provide a guaranteed quality of service. H.323 is part of a family of ITU-T recommendations called H.32x that provides multimedia communication services over a variety of networks.<br />
<br />
H.323 was originally created to provide a mechanism for transporting multimedia applications over LANs but it has rapidly evolved to address the growing needs of VoIP networks. One strength of H.323 was the relatively early availability of a set of standards, not only defining the basic call model, but in addition the supplementary services, needed to address business communication expectations.<br />
H.323 was the first VoIP standard to adopt the Internet Engineering Task Force (IETF) standard Real-Time Control Protocol (RTCP) to transport audio and video over IP networks, with additional protocols for call signaling, and data and audiovisual communications.<br />
<br />
The H.323 standard specifies four kinds of components, which, when networked together, provide the point-to-point and point-to-multipoint multimedia-communication services: <br />
<br />
== Terminal ==<br />
<br />
An H.323 terminal is an endpoint in the LAN that participates in real-time, two-way communications with another H.323 terminal, gateway, or multipoint control unit (MCU). A terminal must support audio communication and can also support audio with video, audio with data, or a combination of all three.<br />
<br />
H.323 terminal options include support user equipment interfaces, audio and video CODECs, the T.120 data protocols, MCU capabilities and an H.225 component called RAS (Registration/Admission/Status) which is a protocol used to communicate with a Gatekeeper.<br />
<br />
# '''User equipment interfaces''': The set of cameras, screens, microphones, speakers and data applications with their respective interfaces.<br />
# '''Audio Codec''': Each terminal will have an audio codec, to codify and to decodify vocal signals (G.711), and they could transmit and receive a-law and μ-law. Optionally, a terminal, could codify and decodify vocal signals. The H.323 terminal can, also optionally, send more of one audio channel at the same time, for example, in order to transmit 2 different languages <br />
# '''Video Codec''': In H.323 terminals is optional.<br />
# '''Data Channel''': One or more data channels are optional. They could be in one direction or in both.<br />
#''' Reception Path latency''': It includes the latency added to the packets to maintain the synchronization, and to consider the fluctuation in the packet arrivals. Usually it is not used in transmission but in the reception, to add the necessary latency, for example, to obtain the synchronization between the movement of the lips and the audio signal in a videoconference.<br />
#''' System Control Unit''': Gives the terminal signaling. There are three different functions: H.245 Control function, H.225 call signalling function and RAS signaling function.<br />
#* ''H.245 Control function'': The H.245 logical channel is used to take messages end-to-end of the H.323 protocol. It takes care to negotiate the capacities (bandwidth), to set up and set down the logical channels and to send the flow control messages. In each call, there will be any number of logical channels of each type (audio, video or data) but only one control logical channel, channel 0.<br />
#* ''H.225 Call signalling function'': It uses one logical channel of signaling to send and receive establishment and end session messages between two H.323 end points. The channel is independent of the H.245 control channel. The H.245 logical channel opening and closing procedures are not used to establish the signaling channel. It is opened before the establishment of the H.245 control channel and any other logical channel. It can settle down terminal to terminal or terminal to gatekeeper.<br />
#* ''RAS Control function (Register, Admission, Status)'': It uses a logical channel of RAS signaling to carry out registry, admission, situation and bandwidth changes procedures between end points (terminal, gateway..) and gatekeeper. It is only used when a gatekeeper is present. The RAS signaling channel is independent of the call signaling channel, and of the H.245 control channel. The H.245 logical channel opening and closing procedures are not used to establish the RAS signaling channel. The RAS control function channel is opened before the establishment of the any other logical channel<br />
#''' H.225 Layer''': It is in charge to give format to the video, audio, and transmitted data packets. In addition, it also takes care of the packet alignment, the sequential number and the error detection. <br />
# '''Packet network interface''': It is specific of each implementation. This must provide the services described in the H.225 recommendation. That means that the reliable end-to-end service (for example, TCP) is mandatory for the H.245 control channel, the data channels and call signaling channels.<br />
<br />
The non reliable end-to-end service (UDP, IPX) is mandatory for the audio channels, the video channels and the RAS channel These services can be duplex or simplex and unicast or multicast depending on the application, the terminals capacities and the network configuration.<br />
<br />
== Gateway ==<br />
<br />
H.323 conference gateways make H.323 terminals on a LAN available to H.323 terminals on a wide area network (WAN) or another H.323 gateway. <br />
<br />
These devices provide many services, including the needed translation function between H.323 conferencing endpoints on the LAN and other ITU-compliant terminals on other ITU-compliant circuit-switched and packet-switched networks.<br />
<br />
These services include the translation mechanism for call signaling (for example H.245 to H.242), data transmission (for example H.225.0 to H.221), and audio and video transcoding.<br />
<br />
The Gateway also does the translation between audio and video CODECs if this is needed as well as performs call setup and clearing.<br />
<br />
Gateways satisfy part of the interoperability vision of H.32x products due to the ability to connect to each other.<br />
<br />
Gateways can serve the following purposes:<br />
<br />
* To bridge an H.323 call to another type of call, such as a telephone.<br />
* To bridge H.323 calls to H.320, which is audio and video transmission over Integrated Services Digital Network (ISDN) .<br />
* To bridge H.323 calls to H.324, which is audio and video transmission over standard telephone lines.<br />
* To bridge different networks; an organization could put a bridge on a firewall to connect an internal corporate network with external networks to accept incoming calls.<br />
<br />
In this case, gateway functions are similar to an MCU for connecting people over networks. Typically, though, the gateway is the translation mechanism in a point-to-point connection, where only one endpoint is an H.323 device. On the other hand, an MCU typically connects many H.323 devices in a multipoint conference.<br />
<br />
== Gatekeeper ==<br />
<br />
Gatekeepers provide network services to H.323 terminals, MCUs, and gateways. H.323 devices register with gatekeepers to send and receive H.323 calls. Gatekeepers give permission to make or accept a call based on a variety of factors.<br />
<br />
Gatekeepers can provide network services such as:<br />
<br />
* Controlling the number and type of connections allowed across the network.<br />
* Helping to route a call to the correct destination.<br />
* Determining and maintaining the network address for incoming calls.<br />
<br />
Gatekeepers perform two important functions.<br />
The first is address translation services between aliases for terminals and gateways and IP or IPX addresses.<br />
<br />
The second Gatekeeper function is bandwidth management. For instance, if a LAN manager-specified threshold for the number of simultaneous conferences on the LAN has been reached, the Gatekeeper can refuse to make any more connections.<br />
<br />
The collection of all Terminals, Gateways, and Multipoint Control Units managed by a single gatekeeper is known as an H.323 Zone.<br />
<br />
A Gatekeeper takes care of the following services if is present (it is not always necessary):<br />
<br />
*''Admission control'': The gatekeeper can deny calls from a terminal because they do not have permission or they do not have permission at that moment of the day or some other criteria. Admissions Control may also be a null function which admits all requests.<br />
* ''Bandwidth control'': The Gatekeeper controls the number of H.323 terminals which can be simultaneously connected and to deny calls if the bandwidth is too low. <br />
* ''Zone Management'': The Gatekeeper provides the above functions for terminals, MCUs, and Gateways which have registered within its Zone of control.<br />
<br />
== Multipoint Control Unit ==<br />
<br />
A Multipoint Control Unit (MCU) in an H.323 conference, also called conferencing servers or conferencing bridges, is an endpoint on the H.323 zone that allows three or more H.323 terminals and gateways to connect and participate in a multipoint conference.<br />
<br />
An MCU includes both multipoint controllers, which manage the H.323 terminal functions and capabilities in a multipoint conference, and multipoint processors, which process the audio, video, and data streams between H.323 terminals. <br />
<br />
An MCU can also connect two terminals in a point-to-point conference that can later develop into a multipoint conference.<br />
<br />
=== Multipoint Controller===<br />
A multipoint controller is a component of H.323 that provides negotiation capacity with all the terminals to carry out different communication levels. Also, it can control conference resources such as video multicasting. <br />
<br />
=== Multipoint Processor===<br />
A multipoint processor is a hardware and specialized software component of H.323. It mixes, exchanges and processes audio, video and/or data flow for the participants of a multipoint conference, in such a way that the terminal processors are not used heavily. The multipoint processor can process an only average flow or multiple average flows depending on the supported conference.<br />
<br />
==H.323 Proxy==<br />
<br />
An H.323 proxy server is a proxy specifically designed for the H.323 protocol that examines packets between two communicating applications. Proxies are able to determine the destination of a call and perform call-connection steps, if necessary. <br />
<br />
H.323 proxies perform the following key functions: <br />
* Voice terminals that do not support Resource Reservation Protocol (RSVP) can connect through remote access or local area networks (LANs) with relatively reliable quality of service (QoS) to the proxy. Pairs of proxies can then be employed to develop tunnels across the IP network. <br />
* Proxies support routing H.323 traffic separately from ordinary data traffic using application-specific routing (ASR). <br />
* Proxies are compatible with network address translation functions in gateways or gatekeepers, enabling H.323 to be deployed in networks using private address space. <br />
<br />
<br />
<br />
== H.323 Protocol stack ==<br />
([http://www.en.voipforo.com/H323/H323_protocolos_stack.php source])<br />
<br />
The most known protocols used in H.323 are:<br />
<br />
* RTP/RTCP (Real-Time Transport Protocol / Real-Time Transport Control Protocol): Internet-standard protocol for the transport of real-time data, including audio and video. RTP is used in virtually all voice-over-IP architectures, for videoconferencing, media-on-demand, and other applications. A thin protocol, it supports content identification, timing reconstruction, and detection of lost packets. <br />
* RAS (Registration, Admission and Status): A protocol for Registration, Admission and Status. In an H.323 audio or video system, the RAS is a control channel over which H.225.0 signaling messages are sent. <br />
* H225.0: Protocol used to describe call signaling, the media (audio and video), the stream packetization, media stream synchronization and control message formats<br />
<br />
* H.245: Control protocol for multimedia communication, describes the messages and procedures used for opening and closing logical channels for audio, video and data, capability exchange, control and indications<br />
<br />
It manages the following functionalities:<br />
<br />
# Interchange of capacities: Terminals define the codecs they have and they send it to the other end point.<br />
# Opening and closing logical channels: H.323 audio and video channels are point to point and unidirectional. Therefore they will have to create at least two of these channels. This is responsibility of H.245. <br />
# Flow Control when there is a problem.<br />
# A lot of different small functions. <br />
<br />
* Q.931: A protocol for Call Signaling, consisting of Setup, Teardown and Disengage. Q.931 is included in the H.225.0 Recommendation<br />
* RSVP (Resource ReSerVation Protocol): Protocol for reserving network resources to provide guaranteed application QoS (Quality of Service)<br />
* T.120: Standard for data conferencing and conference control for interactive multimedia communication - multipoint & point-to-point. <br />
<br />
The following codecs are recommended by the H.323 standard (for more details see [[H323 Audio and Video Codecs]]):<br />
<br />
* G.711: ITU-TSS recommendation "Pulse code modulation (PCM) of voice frequencies". This audio standard is mandatory for all video conferencing systems. It requires a data rate of 56 or 64 kbit/s.<br />
* H.261y H.263: Video codecs of H.323 standard. However, other ones can be used.<br />
<br />
== H.323 clients ==<br />
For some possible H323 (and SIP) VoIP clients you can check [http://forskningsnett.uninett.no/voip/voipclients.html this list]<br />
The only two that support both H323 and linux are:<br />
* [http://www.gnomemeeting.org/index.php?rub=5&path=sources/sources Ekiga] (see ekiga section)<br />
* [http://www.sjlabs.com/sjp.html SJPhone] (not explored by us yet)<br />
<br />
Another option is the commandline [http://packages.debian.org/unstable/comm/ohphone ohphone], directly derived from the [[OpenH323 project]] protoclo stack by the same developers team. <br />
It has no graphical interface but it's recommended for testing purposes.<br />
<br />
=== Ekiga ===<br />
<br />
Ekiga can be downloaded from the [http://www.gnomemeeting.org ekiga] page. The OPAL and PWLIB libraries have to be installed first. This is a tedious and time comsuming process (lots of compiling needed). Our own Ekiga experiences can be found at [[Ekiga]]<br />
<br />
=== Kphone ===<br />
<br />
Kphone is another SIP client used to shortly test the basic setup of Asterisk.<br />
<br />
=== Gnomemeeting ===<br />
<br />
Gnomemeeting is the predecessor of Ekiga. Configuration in [[Gnomemeeting]] section.<br />
<br />
=== SJPhone ===<br />
<br />
Very straightforward download from [http://www.sjlabs.com/sjp.html SJ Labs (VoIP software)]. You get the following interface.<br />
<br />
[[Image:shermafdruksjphone.png]]<br />
<br />
Note:<br />
At least the Windows version of SJ-phone is still using SIP, even when this is disabled in the configuration.<br />
When using 2 instances of SJphone, to call eachother, the connection is true H323.<br />
<br />
== H323 and TrixBox ==<br />
<br />
We tried to look up some information on H323 and TrixBox. From the information on the web it seems that this is a tricky topic. Many questions, few answers. People seem to have trouble with it. I haven't been through all the correspondence on the TrixBox forum but it seems that most people have a hard time even setting up a connection (lots of configuring) and when they do succeed the connection dies after 15-30 seconds. We will look into this a bit more tomorrow.<br />
<br />
== Example H.323 call ==<br />
([http://www.en.voipforo.com/H323/H323_example.php Source])<br />
<br />
In the following example we could see a H.323 call. The different colors show different protocolos.<br />
<br />
[[image:H323-communication-timeline.gif|center]]<br />
<br />
A H.323 call has 4 different processes:<br />
<br />
===Setup===<br />
<br />
* Terminal 1 register itself with the gatekeeper using the RAS protocol (Register, admisaion, status) sending an ARQ message and receiving an ACF message.<br />
* Using H.225 protocol (used for setup and release of the call) terminal T1 sends a SETUP message to T2 requesting a connection. This message contains the IP address, port and alias of the calling user or the IP address and port of the called user. <br />
* T2 sends a CALL PROCEEDING message warning on the attempt to establish a call<br />
* Now, T2 terminal must register itself in the gatekeeper as T1 previously do.<br />
* Alerting message indicates the beginning of tone generation phase.<br />
* And finally, CONNECT message shows the beginning of the connection.<br />
<br />
===Control Signalling===<br />
<br />
In this phase a negotiation using H.245 protocol is opened (conference control), the interchange of the messages (request and answer) between both terminals establishes who will be the master and who the slave, the capacities of the participants and the audio and video codecs to be used. When the negotiation finishes the communication channel is opened (IP addresses, port).<br />
<br />
The main H.245 messages used in this step are:<br />
* TerminalCapabilitySet (TCS). Message capabilities supported by the terminals that take part in a call<br />
* OpenLogicalChannel (OLC). Message to open the logical channel which contains information to allow the reception and codification of the data. It contains information of the data type that will be sent.<br />
<br />
===Audio===<br />
Terminals start the communication using the RTP/RTCP protocol.<br />
<br />
===Call Release===<br />
* The calling or the called terminal can initiate the ending process using the CloseLogicalChannel and EndSessionComand messages to finish the call using again H.245. <br />
* Then using H.225 the connection is closed with the RELEASE COMPLETE message.<br />
* And finally the registration of the terminals in the gatekeeper are cleared using RAS protocol.<br />
<br />
== H323-modes explained ==<br />
[[image:whiteboard Fabio.jpg]]<br />
<br />
== H323-related links ==<br />
* [http://www.voip-info.org/wiki/view/Asterisk+H323+channels H.323 for Asterisk] - Existing implementations.<br />
* [http://www.trixbox.org/modules/newbb/viewforum.php?forum=6 H.323 topics] - Various topics on Trixbox-forum.<br />
** [http://www.trixbox.org/modules/newbb/viewtopic.php?topic_id=2865&forum=6 here is the working configuration & tips for oh323] - a topic.<br />
* [[Links#H.323_Links|More H.323 links]] on the Links-page.<br />
* [http://www.asteriskguru.com/tutorials/sjphone_softphone.html Configuration Sjphone]</div>Gijshttps://wiki.td-er.nl/index.php?title=Glossary&diff=2211Glossary2007-03-06T11:26:30Z<p>Gijs: </p>
<hr />
<div>* '''AGI''' - Asterisk Gateway Interface<br />
* '''ATA''' - ''ATA = Analogue Telephone Adaptor '' Connects an Analogue Telephone to a VOIP network Usually has an Ethernet jack, and an RJ-11 phone jack. Sometimes referred to as VOIP Gateways, TA (Telephone Adaptor), FXS Adaptor, etc. Some ATAs are locked to a particular provider, and useless with any other. Virtually all ATAs use either the SIP or IAX industry standard protocol. [http://www.voip-info.org/wiki-ATA source]<br />
* '''CDR''' - Call Detail Record. This is the log of a call.<br />
* '''DID''' - Direct Inward Dialing; A specially configured phone line from the telephone company that allows for dialing inside a company directly without having to go through an attendant. A DID line cannot be used for outdial operation since there is no dialtone offered.<br />
* '''E.164''' - The international public telecommunication numbering plan. An E.164 number uniquely identifies a public network termination point and typically consists of three fields, CC (country code), NDC (national destination code), and SN (subscriber number), up to 15 digits in total.<br />
* '''Extension''' - an additional telephone that operates on the main line. Each extension has its own (internal) number, which often can only be reached via the internal telephone network.<br />
* '''FXO''' - The Foreign eXchange Office is the end point of a connection. It is the FXO device that receives a call.<br />
* '''FXS''' - A Foreign eXchange Station is the sender of the call to an end-point device.<br />
* '''Gatekeeper''' - The central control entity that performs management functions in a Voice and Fax over IP network and for multimedia applications such as video conferencing. Gatekeepers provide intelligence for the network, including address resolution, authorization, and authentication services, the logging of CDRs, and communications with network management systems. Gatekeepers control bandwidth, provide interfaces to existing legacy systems, and monitor the network for engineering purposes as well as for real-time network management and load balancing. <br />
* '''Gateway''' - In IP telephony, a network device that converts voice and fax calls, in real time, between the public switched telephone network (PSTN) and an IP network. The primary functions of an IP gateway include voice and fax compression/ decompression, packetization , call routing, and control signaling. Additional features may include interfaces to external controllers, billing systems, and network management systems. <br />
* '''PBX''' - A Private Branch eXchange (also called PBX, Private Business eXchange or PABX for Private Automatic Branch eXchange) is a telephone exchange that serves a particular business or office, as opposed to one a common carrier or telephone company operates for many businesses or for the general public. ([http://en.wikipedia.org/wiki/Pbx Source])<br />
* '''Termination''' - When used in telephony-context, the line or route reaches an end-user. When connecting from a VoIP telephone to an end-user on the PSTN, somewhere a PBX should make te connection between those two networks and this PBX can terminate the route.<br />
* '''ToS''' (Type of Service) - Type of Service is a single-byte field in an IP packet header that specifies the service level required for the packet. It is now called the DS field and can have the following values: Bits 0-2: Precedence Bit 3: 0 = Normal Delay, 1 = Low Delay Bit 4: 0 = Normal Throughput, 1 = High Throughput Bit 5: 0 = Normal Reliability, 1 = High Reliability Bits 6-7: Reserved for Future UseUML <br />
* '''Trunk''' - A trunk is the telephony service line that you will be using to make an external call on, e.g. the Telstra telephone line that you have at home is a trunk (or it can be used as a trunk if you wish but not necessarily so). A VOIP service provider (VSP) that you have signed up with is also a trunk. ([http://dumbme.voipeye.com.au/trixbox/trixbox_without_tears.pdf Source, p.29])</div>Gijshttps://wiki.td-er.nl/index.php?title=Trixbox&diff=2210Trixbox2007-03-06T11:16:54Z<p>Gijs: /* Things to know */</p>
<hr />
<div>[http://www.trixbox.org/ Tribox homepage]<br />
<br />
[[Links#Trixbox_links|Trixbox related links]]<br />
<br />
==The Limitations of TrixBox==<br />
([http://www.packtpub.com/trixbox/book Source, sample chapters, p.34])<br />
<br />
Die-hard Asterisk purists will insist that by using TrixBox we are seriously crippling the abilities of the system. The reality is that we can do almost anything with a TrixBox installation just as we can with a bare Asterisk installation. The main limitation we have is that FreePBX requires a specific layout of configuration files, and any hand editing could be overwritten or could break the FreePBX interface.<br />
<br />
TrixBox also locks us down to one machine. When it comes to having multiple machines handling our telephony, it can be difficult to migrate from TrixBox to multiple Asterisk boxes as the TrixBox interface only allows for single machine architecture. This can be manageable as long as the administrators configuring the telephone system are aware of the need to log in to multiple interfaces in order to make changes. As the telephony infrastructure and required capacity grows, it can become quite difficult to manage. It's worth considering moving directly to multiple Asterisk systems rather than trying to run concurrent TrixBox systems.<br />
<br />
Basically, as our needs grow towards those of a large business TrixBox becomes less useful to us. However, for small and medium businesses it can perform well and meet most needs, from small shops to busy call centres.<br />
<br />
== Running Trixbox in VMware on Windows ==<br />
[[Image:Screenshot VMware Trixbox.png|right|369px]]<br />
<br />
Download:<br />
* [http://www.trixbox.org/modules/smartsection/item.php?itemid=50 Tribox VMware image] ([http://mesh.dl.sourceforge.net/sourceforge/asteriskathome/trixbox-2.0-vmware.zip direct link])<br />
[http://www.vmware.com/download/player/ VMware player] (free)<br />
* [http://belnet.dl.sourceforge.net/sourceforge/asteriskathome/trixbox-2.0.iso ISO CD-image] (Direct link)<br />
<br />
=== Things to know ===<br />
<br />
Once the Trixbox Linux is up and running, the following things hold:<br />
<br />
* The default root-password is "password".<br />
* Entering the VMware console is done by clicking on it. Leaving is done by pressing CTRL + Alt at the same time.<br />
* When opening the VMware configuration-file in VMware player, you probably get some warnings about the location of your CDrom drive. This can be ignored. (no CDrom is needed)<br />
* Using the latest version of VMware player, the hardware-detection will detect a change of network card. Please select "Keep configuration" and in the next screen enter the right IP-configuration (needed only once)<br />
* Each instance of VMware player running this version of Trixbox will take on average about 250 MB of RAM.<br />
* Each VMware image of this version of Trixbox needs about 1.66 GiB of hard disk space. This can increase up to a max. of 7.3 GiB (max size of virtual filesystem + 256 MiB VMEM-file) The VMware-images can be compressed for transport to about 570 - 600 MB<br />
* The GUI can be used to configure TrixBox. Remember to enable the necessary modules (at least '''core'''). This can be done through '''FreePBX -> Tools -> Module Administration'''. <br />
* Extensions can now be added under '''FreePBX -> Setup'''<br />
<br />
=== Editors ===<br />
<br />
The config files of Asterisk are located in /etc/asterisk/<br />
<br />
These can be edited through the GUI (in administrator mode) under '''Asterisk -> ConfigEdit'''. <br />
<br />
If you don't want or can't do it online:<br />
Editing those files with the installed editor vi, is rather tedious. Therefore we installed Emacs to do the editing.<br />
Since Trixbox is based on CentOS, it is possible to use the CentOS RPM's to install Emacs.<br />
<br />
The 2 RPM's needed for Emacs are located at the following URL's:<br />
<br />
ftp://ftp.nluug.nl/pub/os/Linux/distr/CentOS/4.4/os/i386/CentOS/RPMS/emacs-common-21.3-19.EL.4.i386.rpm<br />
ftp://ftp.nluug.nl/pub/os/Linux/distr/CentOS/4.4/os/i386/CentOS/RPMS/emacs-nox-21.3-19.EL.4.i386.rpm<br />
<br />
Using the program wget, it is possible to download these. After downloading, the RPM's can be installed with "''rpm -i''".<br />
We also created some smaller URL's, which is easier to type ;)<br />
<br />
mkdir install<br />
cd install<br />
wget http://turl.nl/99<br />
wget http://turl.nl/100<br />
rpm -i emacs-common-21.3-19.EL.4.i386.rpm<br />
rpm -i emacs-nox-21.3-19.EL.4.i386.rpm<br />
<br />
The name of the emacs-executable is "emacs-nox"<br />
<br />
Another possibility is simply to use the YUM package manager:<br />
<br />
[root@asterisk1 ~]# yum install emacs-nox<br />
<br />
=== Connecting with the Trixbox-shell ===<br />
It is possible to use the Trixbox shell via VMware (player), but this has one mayor disadvantage. You can't use cut 'n paste.<br />
However, it is also possible to interface over a SSH connection, using e.g. [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty].<br />
The IP-adress of the Trixbox installation is given at the login (using VMware).<br />
<br />
To log in, the standard root-password is "password".<br />
<br />
== Running Trixbox in VMware on Linux ==<br />
<br />
In the following we assume that the VMware image of TrixBox has already been downloaded to some directory, for instance<br />
<br />
/home/scratch<br />
<br />
First of all, VMware needs to be launched from the command-line<br />
<br />
csg9101@wingtip114 [~/bin] : vmware &<br />
<br />
After a while VMware will be up and running. Then the next step is to select ''open an existing Virtual Machine'':<br />
<br />
[[Image:VMware-VM selection.png]]<br />
<br />
At this point, the CentOS TrixBox system will boot. Eventually a Linux login shell will appear.<br />
<br />
=== Networking - NAT ===<br />
<br />
TrixBox starts up with a default network configuration based on IPv6; this won't work in most cases. To remedy this it is necessary to log in on the TrixBox as root and to configure the network subsystem.<br />
<br />
This configuration is two-fold: on the VMware side it is necessary to set up network routing, as documented at [http://www.vmware.com/support/ws4/doc/network_configure_ws.html network_configure_ws]. <br />
<br />
In our case, the present network is tightly configured by DHCP in such a way that using an IP in the same range as the machine's IP is not an option and other IP's are ignored. Therefore Network bridging isn't an option; we use NAT instead. <br />
<br />
Hereby we have to set up NAT conforming to the parameters which are set up in the following VMware config file (/etc/vmware/vmnet8/nat/nat.conf.)<br />
<br />
# Linux NAT configuration file<br />
[host]<br />
# NAT gateway address <br />
ip = 192.168.5.2<br />
netmask = 255.255.255.0<br />
# or ip = 192.168.5.2/24<br />
<br />
# enable configuration; disabled by default for security reasons<br />
#configport = 33445<br />
<br />
# VMnet device if not specified on command line<br />
device = /dev/vmnet8<br />
<br />
# Allow PORT/EPRT FTP commands (they need incoming TCP stream...)<br />
activeFTP = 1<br />
<br />
# Allows the source to have any OUI. Turn this one if you change the OUI<br />
# in the MAC address of your virtual machines.<br />
#allowAnyOUI = 1<br />
<br />
[udp]<br />
# Timeout in seconds, 0 = no timeout, default = 60; real value might<br />
# be up to 100% longer<br />
timeout = 60<br />
<br />
[incomingtcp]<br />
# Use these with care - anyone can enter into your VM through these...<br />
<br />
# FTP (both active and passive FTP is always enabled)<br />
# ftp localhost 8887<br />
#8887 = 192.168.5.128:21<br />
<br />
# WEB (make sure that if you are using named webhosting, names point to<br />
# your host, not to guest... And if you are forwarding port other<br />
# than 80 make sure that your server copes with mismatched port <br />
# number in Host: header)<br />
# lynx http://localhost:8888<br />
#8888 = 192.168.5.128:80<br />
<br />
# SSH<br />
# ssh -p 8889 root@localhost<br />
#8889 = 192.168.5.128:22<br />
<br />
[incomingudp]<br />
# UDP port forwarding example<br />
#6000 = 192.168.5.128:6001<br />
<br />
On the TrixBox side the networking infrastructure should happen according to [http://www.vmware.com/support/gsx3/doc/network_nat_advanced_gsx.html network_nat_advanced_gsx]; the new network parameters can be applied through the command<br />
netconfig<br />
For further details see [http://www.sureteq.com/asterisk/trixboxv1.2.htm#3.1_-_Network_configuration_ TrixBox Network configuration].<br />
<br />
As far as we know, such NAT configuration does '''not''' ''forward'' any connection to the TrixBox running within VMware, therefore at this moment this solution doesn't allow any incoming connection.<br />
<br />
=== NAT - Update (29/01/2007) ===<br />
<br />
Further investigation made us discover a quite complex situation.<br />
<br />
First of all, in the Linux installation VMware creates a couple of devices, namely<br />
<br />
eth0 Link encap:Ethernet HWaddr 00:0E:7F:FB:0A:25<br />
inet addr:129.125.21.161 Bcast:129.125.21.255 Mask:255.255.255.0<br />
inet6 addr: fe80::20e:7fff:fefb:a25/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:219478 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:172723 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000<br />
RX bytes:94422484 (90.0 MiB) TX bytes:54367351 (51.8 MiB)<br />
Interrupt:16<br />
<br />
lo Link encap:Local Loopback<br />
inet addr:127.0.0.1 Mask:255.0.0.0<br />
inet6 addr: ::1/128 Scope:Host<br />
UP LOOPBACK RUNNING MTU:16436 Metric:1<br />
RX packets:465 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:465 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0<br />
RX bytes:47236 (46.1 KiB) TX bytes:47236 (46.1 KiB)<br />
<br />
vmnet1 Link encap:Ethernet HWaddr 00:50:56:C0:00:01<br />
inet addr:192.168.7.1 Bcast:192.168.7.255 Mask:255.255.255.0<br />
inet6 addr: fe80::250:56ff:fec0:1/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:0 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000<br />
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)<br />
<br />
vmnet8 Link encap:Ethernet HWaddr 00:50:56:C0:00:08<br />
inet addr:192.168.5.1 Bcast:192.168.5.255 Mask:255.255.255.0<br />
inet6 addr: fe80::250:56ff:fec0:8/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:0 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000<br />
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)<br />
<br />
<br />
NAT translation is merely performed on the ip address where interface [[vmnet8]] is listening to. For some reason even a manipulated VMware configuration file (/etc/vmware/vmnet8/nat/nat.conf) doesn't realize the port-forwards which are needed to reach the TrixBox virtual machine; the used configuration is<br />
<br />
csg9101@wingtip114 [~] : cat /home/scratch/trixbox\ 2.0/nat.conf<br />
# Linux NAT configuration file<br />
[host]<br />
# NAT gateway address<br />
ip = 192.168.5.2<br />
netmask = 255.255.255.0<br />
# or ip = 192.168.5.2/24<br />
<br />
# enable configuration; disabled by default for security reasons<br />
#configport = 33445<br />
<br />
# VMnet device if not specified on command line<br />
device = /dev/vmnet8<br />
<br />
# Allow PORT/EPRT FTP commands (they need incoming TCP stream...)<br />
activeFTP = 1<br />
<br />
# Allows the source to have any OUI. Turn this one if you change the OUI<br />
# in the MAC address of your virtual machines.<br />
#allowAnyOUI = 1<br />
<br />
[udp]<br />
# Timeout in seconds, 0 = no timeout, default = 60; real value might<br />
# be up to 100% longer<br />
timeout = 60<br />
<br />
[incomingtcp]<br />
# Use these with care - anyone can enter into your VM through these...<br />
<br />
# FTP (both active and passive FTP is always enabled)<br />
# ftp localhost 8887<br />
8887 = 192.168.5.128:21<br />
<br />
# WEB (make sure that if you are using named webhosting, names point to<br />
# your host, not to guest... And if you are forwarding port other<br />
# than 80 make sure that your server copes with mismatched port<br />
# number in Host: header)<br />
# lynx http://localhost:8888<br />
8888 = 192.168.5.128:80<br />
<br />
# SSH<br />
# ssh -p 8889 root@localhost<br />
8889 = 192.168.5.128:22<br />
<br />
[incomingudp]<br />
# UDP port forwarding example<br />
#6000 = 192.168.5.128:6001<br />
<br />
# IAX1 - port forward for the obsolete IAX ver 1 protocol<br />
# essential for trixbox/asterisk<br />
4569 = 192.168.5.128:4569<br />
<br />
# IAX2 - port forward for the IAX ver 2 protocol<br />
# essential for trixbox/asterisk<br />
5036 = 192.168.5.128:5036<br />
<br />
In this case the virtual machine has the ip 192.168.5.128 and a series op network port are mapped to it; unfortunately it doesn't seem to work:<br />
* from the outside world it is not possible to open any connection towards the TrixBox, i.e. not by usig the real machine's ip and port 8888 nor using the "VMware router" at adress 192.168.5.2 and port 8888<br />
* from the local Linux OS it is possible to connect to the TrixBox through its ip; this is not sufficient as it's not possible to connect from ''another'' machine.<br />
<br />
=== Network Bridging ===<br />
<br />
The other main way to provide network connectivity to the virtual TrixBox is to set up VMware using ''Bridging''.<br />
According to the VMware documentation, this should happen by selecting Bridging among the network interface properties in the VMware System Console. Moreover, the virtual OS should ''copy'' the host OS's ip. This of course generates a ip address conflict, hampering the virtual system's connectivity.<br />
The official workaround is to allow duplicate ip's, but unfortunately the documentation doesn't provide a clear way to configure this and no particular option is provided by the VMware System Console's UI.<br />
<br />
A solution is to assign a new free ip address to the virtual TrixBox (ofcourse, this needs to be done in ''agreement'' with the network administrator/policy ('''!''') ). In this case, the virtual TrixBox can also play as ''gateway'' for itself.<br />
This enables full communication to the Virtual TrixBox from and to the host machine '''and''' the outside world.<br />
<br />
This is the used network configuration file:<br />
<br />
[root@asterisk1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0<br />
DEVICE=eth0<br />
ONBOOT=yes<br />
BOOTPROTO=static<br />
IPADDR=129.125.21.240<br />
NETMASK=255.255.0.0<br />
GATEWAY=129.125.21.240</div>Gijshttps://wiki.td-er.nl/index.php?title=Trixbox&diff=2209Trixbox2007-03-06T11:16:21Z<p>Gijs: </p>
<hr />
<div>[http://www.trixbox.org/ Tribox homepage]<br />
<br />
[[Links#Trixbox_links|Trixbox related links]]<br />
<br />
==The Limitations of TrixBox==<br />
([http://www.packtpub.com/trixbox/book Source, sample chapters, p.34])<br />
<br />
Die-hard Asterisk purists will insist that by using TrixBox we are seriously crippling the abilities of the system. The reality is that we can do almost anything with a TrixBox installation just as we can with a bare Asterisk installation. The main limitation we have is that FreePBX requires a specific layout of configuration files, and any hand editing could be overwritten or could break the FreePBX interface.<br />
<br />
TrixBox also locks us down to one machine. When it comes to having multiple machines handling our telephony, it can be difficult to migrate from TrixBox to multiple Asterisk boxes as the TrixBox interface only allows for single machine architecture. This can be manageable as long as the administrators configuring the telephone system are aware of the need to log in to multiple interfaces in order to make changes. As the telephony infrastructure and required capacity grows, it can become quite difficult to manage. It's worth considering moving directly to multiple Asterisk systems rather than trying to run concurrent TrixBox systems.<br />
<br />
Basically, as our needs grow towards those of a large business TrixBox becomes less useful to us. However, for small and medium businesses it can perform well and meet most needs, from small shops to busy call centres.<br />
<br />
== Running Trixbox in VMware on Windows ==<br />
[[Image:Screenshot VMware Trixbox.png|right|369px]]<br />
<br />
Download:<br />
* [http://www.trixbox.org/modules/smartsection/item.php?itemid=50 Tribox VMware image] ([http://mesh.dl.sourceforge.net/sourceforge/asteriskathome/trixbox-2.0-vmware.zip direct link])<br />
[http://www.vmware.com/download/player/ VMware player] (free)<br />
* [http://belnet.dl.sourceforge.net/sourceforge/asteriskathome/trixbox-2.0.iso ISO CD-image] (Direct link)<br />
<br />
=== Things to know ===<br />
<br />
*** document the startup of VMware ***<br />
<br />
Once the Trixbox Linux is up and running, the following things hold:<br />
<br />
* The default root-password is "password".<br />
* Entering the VMware console is done by clicking on it. Leaving is done by pressing CTRL + Alt at the same time.<br />
* When opening the VMware configuration-file in VMware player, you probably get some warnings about the location of your CDrom drive. This can be ignored. (no CDrom is needed)<br />
* Using the latest version of VMware player, the hardware-detection will detect a change of network card. Please select "Keep configuration" and in the next screen enter the right IP-configuration (needed only once)<br />
* Each instance of VMware player running this version of Trixbox will take on average about 250 MB of RAM.<br />
* Each VMware image of this version of Trixbox needs about 1.66 GiB of hard disk space. This can increase up to a max. of 7.3 GiB (max size of virtual filesystem + 256 MiB VMEM-file) The VMware-images can be compressed for transport to about 570 - 600 MB<br />
* The GUI can be used to configure TrixBox. Remember to enable the necessary modules (at least '''core'''). This can be done through '''FreePBX -> Tools -> Module Administration'''. <br />
* Extensions can now be added under '''FreePBX -> Setup'''<br />
<br />
=== Editors ===<br />
<br />
The config files of Asterisk are located in /etc/asterisk/<br />
<br />
These can be edited through the GUI (in administrator mode) under '''Asterisk -> ConfigEdit'''. <br />
<br />
If you don't want or can't do it online:<br />
Editing those files with the installed editor vi, is rather tedious. Therefore we installed Emacs to do the editing.<br />
Since Trixbox is based on CentOS, it is possible to use the CentOS RPM's to install Emacs.<br />
<br />
The 2 RPM's needed for Emacs are located at the following URL's:<br />
<br />
ftp://ftp.nluug.nl/pub/os/Linux/distr/CentOS/4.4/os/i386/CentOS/RPMS/emacs-common-21.3-19.EL.4.i386.rpm<br />
ftp://ftp.nluug.nl/pub/os/Linux/distr/CentOS/4.4/os/i386/CentOS/RPMS/emacs-nox-21.3-19.EL.4.i386.rpm<br />
<br />
Using the program wget, it is possible to download these. After downloading, the RPM's can be installed with "''rpm -i''".<br />
We also created some smaller URL's, which is easier to type ;)<br />
<br />
mkdir install<br />
cd install<br />
wget http://turl.nl/99<br />
wget http://turl.nl/100<br />
rpm -i emacs-common-21.3-19.EL.4.i386.rpm<br />
rpm -i emacs-nox-21.3-19.EL.4.i386.rpm<br />
<br />
The name of the emacs-executable is "emacs-nox"<br />
<br />
Another possibility is simply to use the YUM package manager:<br />
<br />
[root@asterisk1 ~]# yum install emacs-nox<br />
<br />
=== Connecting with the Trixbox-shell ===<br />
It is possible to use the Trixbox shell via VMware (player), but this has one mayor disadvantage. You can't use cut 'n paste.<br />
However, it is also possible to interface over a SSH connection, using e.g. [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty].<br />
The IP-adress of the Trixbox installation is given at the login (using VMware).<br />
<br />
To log in, the standard root-password is "password".<br />
<br />
== Running Trixbox in VMware on Linux ==<br />
<br />
In the following we assume that the VMware image of TrixBox has already been downloaded to some directory, for instance<br />
<br />
/home/scratch<br />
<br />
First of all, VMware needs to be launched from the command-line<br />
<br />
csg9101@wingtip114 [~/bin] : vmware &<br />
<br />
After a while VMware will be up and running. Then the next step is to select ''open an existing Virtual Machine'':<br />
<br />
[[Image:VMware-VM selection.png]]<br />
<br />
At this point, the CentOS TrixBox system will boot. Eventually a Linux login shell will appear.<br />
<br />
=== Networking - NAT ===<br />
<br />
TrixBox starts up with a default network configuration based on IPv6; this won't work in most cases. To remedy this it is necessary to log in on the TrixBox as root and to configure the network subsystem.<br />
<br />
This configuration is two-fold: on the VMware side it is necessary to set up network routing, as documented at [http://www.vmware.com/support/ws4/doc/network_configure_ws.html network_configure_ws]. <br />
<br />
In our case, the present network is tightly configured by DHCP in such a way that using an IP in the same range as the machine's IP is not an option and other IP's are ignored. Therefore Network bridging isn't an option; we use NAT instead. <br />
<br />
Hereby we have to set up NAT conforming to the parameters which are set up in the following VMware config file (/etc/vmware/vmnet8/nat/nat.conf.)<br />
<br />
# Linux NAT configuration file<br />
[host]<br />
# NAT gateway address <br />
ip = 192.168.5.2<br />
netmask = 255.255.255.0<br />
# or ip = 192.168.5.2/24<br />
<br />
# enable configuration; disabled by default for security reasons<br />
#configport = 33445<br />
<br />
# VMnet device if not specified on command line<br />
device = /dev/vmnet8<br />
<br />
# Allow PORT/EPRT FTP commands (they need incoming TCP stream...)<br />
activeFTP = 1<br />
<br />
# Allows the source to have any OUI. Turn this one if you change the OUI<br />
# in the MAC address of your virtual machines.<br />
#allowAnyOUI = 1<br />
<br />
[udp]<br />
# Timeout in seconds, 0 = no timeout, default = 60; real value might<br />
# be up to 100% longer<br />
timeout = 60<br />
<br />
[incomingtcp]<br />
# Use these with care - anyone can enter into your VM through these...<br />
<br />
# FTP (both active and passive FTP is always enabled)<br />
# ftp localhost 8887<br />
#8887 = 192.168.5.128:21<br />
<br />
# WEB (make sure that if you are using named webhosting, names point to<br />
# your host, not to guest... And if you are forwarding port other<br />
# than 80 make sure that your server copes with mismatched port <br />
# number in Host: header)<br />
# lynx http://localhost:8888<br />
#8888 = 192.168.5.128:80<br />
<br />
# SSH<br />
# ssh -p 8889 root@localhost<br />
#8889 = 192.168.5.128:22<br />
<br />
[incomingudp]<br />
# UDP port forwarding example<br />
#6000 = 192.168.5.128:6001<br />
<br />
On the TrixBox side the networking infrastructure should happen according to [http://www.vmware.com/support/gsx3/doc/network_nat_advanced_gsx.html network_nat_advanced_gsx]; the new network parameters can be applied through the command<br />
netconfig<br />
For further details see [http://www.sureteq.com/asterisk/trixboxv1.2.htm#3.1_-_Network_configuration_ TrixBox Network configuration].<br />
<br />
As far as we know, such NAT configuration does '''not''' ''forward'' any connection to the TrixBox running within VMware, therefore at this moment this solution doesn't allow any incoming connection.<br />
<br />
=== NAT - Update (29/01/2007) ===<br />
<br />
Further investigation made us discover a quite complex situation.<br />
<br />
First of all, in the Linux installation VMware creates a couple of devices, namely<br />
<br />
eth0 Link encap:Ethernet HWaddr 00:0E:7F:FB:0A:25<br />
inet addr:129.125.21.161 Bcast:129.125.21.255 Mask:255.255.255.0<br />
inet6 addr: fe80::20e:7fff:fefb:a25/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:219478 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:172723 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000<br />
RX bytes:94422484 (90.0 MiB) TX bytes:54367351 (51.8 MiB)<br />
Interrupt:16<br />
<br />
lo Link encap:Local Loopback<br />
inet addr:127.0.0.1 Mask:255.0.0.0<br />
inet6 addr: ::1/128 Scope:Host<br />
UP LOOPBACK RUNNING MTU:16436 Metric:1<br />
RX packets:465 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:465 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0<br />
RX bytes:47236 (46.1 KiB) TX bytes:47236 (46.1 KiB)<br />
<br />
vmnet1 Link encap:Ethernet HWaddr 00:50:56:C0:00:01<br />
inet addr:192.168.7.1 Bcast:192.168.7.255 Mask:255.255.255.0<br />
inet6 addr: fe80::250:56ff:fec0:1/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:0 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000<br />
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)<br />
<br />
vmnet8 Link encap:Ethernet HWaddr 00:50:56:C0:00:08<br />
inet addr:192.168.5.1 Bcast:192.168.5.255 Mask:255.255.255.0<br />
inet6 addr: fe80::250:56ff:fec0:8/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:0 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000<br />
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)<br />
<br />
<br />
NAT translation is merely performed on the ip address where interface [[vmnet8]] is listening to. For some reason even a manipulated VMware configuration file (/etc/vmware/vmnet8/nat/nat.conf) doesn't realize the port-forwards which are needed to reach the TrixBox virtual machine; the used configuration is<br />
<br />
csg9101@wingtip114 [~] : cat /home/scratch/trixbox\ 2.0/nat.conf<br />
# Linux NAT configuration file<br />
[host]<br />
# NAT gateway address<br />
ip = 192.168.5.2<br />
netmask = 255.255.255.0<br />
# or ip = 192.168.5.2/24<br />
<br />
# enable configuration; disabled by default for security reasons<br />
#configport = 33445<br />
<br />
# VMnet device if not specified on command line<br />
device = /dev/vmnet8<br />
<br />
# Allow PORT/EPRT FTP commands (they need incoming TCP stream...)<br />
activeFTP = 1<br />
<br />
# Allows the source to have any OUI. Turn this one if you change the OUI<br />
# in the MAC address of your virtual machines.<br />
#allowAnyOUI = 1<br />
<br />
[udp]<br />
# Timeout in seconds, 0 = no timeout, default = 60; real value might<br />
# be up to 100% longer<br />
timeout = 60<br />
<br />
[incomingtcp]<br />
# Use these with care - anyone can enter into your VM through these...<br />
<br />
# FTP (both active and passive FTP is always enabled)<br />
# ftp localhost 8887<br />
8887 = 192.168.5.128:21<br />
<br />
# WEB (make sure that if you are using named webhosting, names point to<br />
# your host, not to guest... And if you are forwarding port other<br />
# than 80 make sure that your server copes with mismatched port<br />
# number in Host: header)<br />
# lynx http://localhost:8888<br />
8888 = 192.168.5.128:80<br />
<br />
# SSH<br />
# ssh -p 8889 root@localhost<br />
8889 = 192.168.5.128:22<br />
<br />
[incomingudp]<br />
# UDP port forwarding example<br />
#6000 = 192.168.5.128:6001<br />
<br />
# IAX1 - port forward for the obsolete IAX ver 1 protocol<br />
# essential for trixbox/asterisk<br />
4569 = 192.168.5.128:4569<br />
<br />
# IAX2 - port forward for the IAX ver 2 protocol<br />
# essential for trixbox/asterisk<br />
5036 = 192.168.5.128:5036<br />
<br />
In this case the virtual machine has the ip 192.168.5.128 and a series op network port are mapped to it; unfortunately it doesn't seem to work:<br />
* from the outside world it is not possible to open any connection towards the TrixBox, i.e. not by usig the real machine's ip and port 8888 nor using the "VMware router" at adress 192.168.5.2 and port 8888<br />
* from the local Linux OS it is possible to connect to the TrixBox through its ip; this is not sufficient as it's not possible to connect from ''another'' machine.<br />
<br />
=== Network Bridging ===<br />
<br />
The other main way to provide network connectivity to the virtual TrixBox is to set up VMware using ''Bridging''.<br />
According to the VMware documentation, this should happen by selecting Bridging among the network interface properties in the VMware System Console. Moreover, the virtual OS should ''copy'' the host OS's ip. This of course generates a ip address conflict, hampering the virtual system's connectivity.<br />
The official workaround is to allow duplicate ip's, but unfortunately the documentation doesn't provide a clear way to configure this and no particular option is provided by the VMware System Console's UI.<br />
<br />
A solution is to assign a new free ip address to the virtual TrixBox (ofcourse, this needs to be done in ''agreement'' with the network administrator/policy ('''!''') ). In this case, the virtual TrixBox can also play as ''gateway'' for itself.<br />
This enables full communication to the Virtual TrixBox from and to the host machine '''and''' the outside world.<br />
<br />
This is the used network configuration file:<br />
<br />
[root@asterisk1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0<br />
DEVICE=eth0<br />
ONBOOT=yes<br />
BOOTPROTO=static<br />
IPADDR=129.125.21.240<br />
NETMASK=255.255.0.0<br />
GATEWAY=129.125.21.240</div>Gijshttps://wiki.td-er.nl/index.php?title=Trixbox&diff=2208Trixbox2007-03-06T11:15:41Z<p>Gijs: </p>
<hr />
<div>[http://www.trixbox.org/ Tribox homepage]<br />
<br />
[[Links#Trixbox_links|Trixbox related links]]<br />
<br />
==The Limitations of TrixBox==<br />
([http://www.packtpub.com/trixbox/book Source, sample chapters, p.34])<br />
Die-hard Asterisk purists will insist that by using TrixBox we are seriously crippling the abilities of the system. The reality is that we can do almost anything with a TrixBox installation just as we can with a bare Asterisk installation. The main limitation we have is that FreePBX requires a specific layout of configuration files, and any hand editing could be overwritten or could break the FreePBX interface.<br />
TrixBox also locks us down to one machine. When it comes to having multiple machines handling our telephony, it can be difficult to migrate from TrixBox to multiple Asterisk boxes as the TrixBox interface only allows for single machine architecture. This can be manageable as long as the administrators configuring the telephone system are aware of the need to log in to multiple interfaces in order to make changes. As the telephony infrastructure and required capacity grows, it can become quite difficult to manage. It's worth considering moving directly to multiple Asterisk systems rather than trying to run concurrent TrixBox systems.<br />
Basically, as our needs grow towards those of a large business TrixBox becomes less useful to us. However, for small and medium businesses it can perform well and meet most needs, from small shops to busy call centres.<br />
<br />
== Running Trixbox in VMware on Windows ==<br />
[[Image:Screenshot VMware Trixbox.png|right|369px]]<br />
<br />
Download:<br />
* [http://www.trixbox.org/modules/smartsection/item.php?itemid=50 Tribox VMware image] ([http://mesh.dl.sourceforge.net/sourceforge/asteriskathome/trixbox-2.0-vmware.zip direct link])<br />
[http://www.vmware.com/download/player/ VMware player] (free)<br />
* [http://belnet.dl.sourceforge.net/sourceforge/asteriskathome/trixbox-2.0.iso ISO CD-image] (Direct link)<br />
<br />
=== Things to know ===<br />
<br />
*** document the startup of VMware ***<br />
<br />
Once the Trixbox Linux is up and running, the following things hold:<br />
<br />
* The default root-password is "password".<br />
* Entering the VMware console is done by clicking on it. Leaving is done by pressing CTRL + Alt at the same time.<br />
* When opening the VMware configuration-file in VMware player, you probably get some warnings about the location of your CDrom drive. This can be ignored. (no CDrom is needed)<br />
* Using the latest version of VMware player, the hardware-detection will detect a change of network card. Please select "Keep configuration" and in the next screen enter the right IP-configuration (needed only once)<br />
* Each instance of VMware player running this version of Trixbox will take on average about 250 MB of RAM.<br />
* Each VMware image of this version of Trixbox needs about 1.66 GiB of hard disk space. This can increase up to a max. of 7.3 GiB (max size of virtual filesystem + 256 MiB VMEM-file) The VMware-images can be compressed for transport to about 570 - 600 MB<br />
* The GUI can be used to configure TrixBox. Remember to enable the necessary modules (at least '''core'''). This can be done through '''FreePBX -> Tools -> Module Administration'''. <br />
* Extensions can now be added under '''FreePBX -> Setup'''<br />
<br />
=== Editors ===<br />
<br />
The config files of Asterisk are located in /etc/asterisk/<br />
<br />
These can be edited through the GUI (in administrator mode) under '''Asterisk -> ConfigEdit'''. <br />
<br />
If you don't want or can't do it online:<br />
Editing those files with the installed editor vi, is rather tedious. Therefore we installed Emacs to do the editing.<br />
Since Trixbox is based on CentOS, it is possible to use the CentOS RPM's to install Emacs.<br />
<br />
The 2 RPM's needed for Emacs are located at the following URL's:<br />
<br />
ftp://ftp.nluug.nl/pub/os/Linux/distr/CentOS/4.4/os/i386/CentOS/RPMS/emacs-common-21.3-19.EL.4.i386.rpm<br />
ftp://ftp.nluug.nl/pub/os/Linux/distr/CentOS/4.4/os/i386/CentOS/RPMS/emacs-nox-21.3-19.EL.4.i386.rpm<br />
<br />
Using the program wget, it is possible to download these. After downloading, the RPM's can be installed with "''rpm -i''".<br />
We also created some smaller URL's, which is easier to type ;)<br />
<br />
mkdir install<br />
cd install<br />
wget http://turl.nl/99<br />
wget http://turl.nl/100<br />
rpm -i emacs-common-21.3-19.EL.4.i386.rpm<br />
rpm -i emacs-nox-21.3-19.EL.4.i386.rpm<br />
<br />
The name of the emacs-executable is "emacs-nox"<br />
<br />
Another possibility is simply to use the YUM package manager:<br />
<br />
[root@asterisk1 ~]# yum install emacs-nox<br />
<br />
=== Connecting with the Trixbox-shell ===<br />
It is possible to use the Trixbox shell via VMware (player), but this has one mayor disadvantage. You can't use cut 'n paste.<br />
However, it is also possible to interface over a SSH connection, using e.g. [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty].<br />
The IP-adress of the Trixbox installation is given at the login (using VMware).<br />
<br />
To log in, the standard root-password is "password".<br />
<br />
== Running Trixbox in VMware on Linux ==<br />
<br />
In the following we assume that the VMware image of TrixBox has already been downloaded to some directory, for instance<br />
<br />
/home/scratch<br />
<br />
First of all, VMware needs to be launched from the command-line<br />
<br />
csg9101@wingtip114 [~/bin] : vmware &<br />
<br />
After a while VMware will be up and running. Then the next step is to select ''open an existing Virtual Machine'':<br />
<br />
[[Image:VMware-VM selection.png]]<br />
<br />
At this point, the CentOS TrixBox system will boot. Eventually a Linux login shell will appear.<br />
<br />
=== Networking - NAT ===<br />
<br />
TrixBox starts up with a default network configuration based on IPv6; this won't work in most cases. To remedy this it is necessary to log in on the TrixBox as root and to configure the network subsystem.<br />
<br />
This configuration is two-fold: on the VMware side it is necessary to set up network routing, as documented at [http://www.vmware.com/support/ws4/doc/network_configure_ws.html network_configure_ws]. <br />
<br />
In our case, the present network is tightly configured by DHCP in such a way that using an IP in the same range as the machine's IP is not an option and other IP's are ignored. Therefore Network bridging isn't an option; we use NAT instead. <br />
<br />
Hereby we have to set up NAT conforming to the parameters which are set up in the following VMware config file (/etc/vmware/vmnet8/nat/nat.conf.)<br />
<br />
# Linux NAT configuration file<br />
[host]<br />
# NAT gateway address <br />
ip = 192.168.5.2<br />
netmask = 255.255.255.0<br />
# or ip = 192.168.5.2/24<br />
<br />
# enable configuration; disabled by default for security reasons<br />
#configport = 33445<br />
<br />
# VMnet device if not specified on command line<br />
device = /dev/vmnet8<br />
<br />
# Allow PORT/EPRT FTP commands (they need incoming TCP stream...)<br />
activeFTP = 1<br />
<br />
# Allows the source to have any OUI. Turn this one if you change the OUI<br />
# in the MAC address of your virtual machines.<br />
#allowAnyOUI = 1<br />
<br />
[udp]<br />
# Timeout in seconds, 0 = no timeout, default = 60; real value might<br />
# be up to 100% longer<br />
timeout = 60<br />
<br />
[incomingtcp]<br />
# Use these with care - anyone can enter into your VM through these...<br />
<br />
# FTP (both active and passive FTP is always enabled)<br />
# ftp localhost 8887<br />
#8887 = 192.168.5.128:21<br />
<br />
# WEB (make sure that if you are using named webhosting, names point to<br />
# your host, not to guest... And if you are forwarding port other<br />
# than 80 make sure that your server copes with mismatched port <br />
# number in Host: header)<br />
# lynx http://localhost:8888<br />
#8888 = 192.168.5.128:80<br />
<br />
# SSH<br />
# ssh -p 8889 root@localhost<br />
#8889 = 192.168.5.128:22<br />
<br />
[incomingudp]<br />
# UDP port forwarding example<br />
#6000 = 192.168.5.128:6001<br />
<br />
On the TrixBox side the networking infrastructure should happen according to [http://www.vmware.com/support/gsx3/doc/network_nat_advanced_gsx.html network_nat_advanced_gsx]; the new network parameters can be applied through the command<br />
netconfig<br />
For further details see [http://www.sureteq.com/asterisk/trixboxv1.2.htm#3.1_-_Network_configuration_ TrixBox Network configuration].<br />
<br />
As far as we know, such NAT configuration does '''not''' ''forward'' any connection to the TrixBox running within VMware, therefore at this moment this solution doesn't allow any incoming connection.<br />
<br />
=== NAT - Update (29/01/2007) ===<br />
<br />
Further investigation made us discover a quite complex situation.<br />
<br />
First of all, in the Linux installation VMware creates a couple of devices, namely<br />
<br />
eth0 Link encap:Ethernet HWaddr 00:0E:7F:FB:0A:25<br />
inet addr:129.125.21.161 Bcast:129.125.21.255 Mask:255.255.255.0<br />
inet6 addr: fe80::20e:7fff:fefb:a25/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:219478 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:172723 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000<br />
RX bytes:94422484 (90.0 MiB) TX bytes:54367351 (51.8 MiB)<br />
Interrupt:16<br />
<br />
lo Link encap:Local Loopback<br />
inet addr:127.0.0.1 Mask:255.0.0.0<br />
inet6 addr: ::1/128 Scope:Host<br />
UP LOOPBACK RUNNING MTU:16436 Metric:1<br />
RX packets:465 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:465 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0<br />
RX bytes:47236 (46.1 KiB) TX bytes:47236 (46.1 KiB)<br />
<br />
vmnet1 Link encap:Ethernet HWaddr 00:50:56:C0:00:01<br />
inet addr:192.168.7.1 Bcast:192.168.7.255 Mask:255.255.255.0<br />
inet6 addr: fe80::250:56ff:fec0:1/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:0 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000<br />
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)<br />
<br />
vmnet8 Link encap:Ethernet HWaddr 00:50:56:C0:00:08<br />
inet addr:192.168.5.1 Bcast:192.168.5.255 Mask:255.255.255.0<br />
inet6 addr: fe80::250:56ff:fec0:8/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:0 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000<br />
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)<br />
<br />
<br />
NAT translation is merely performed on the ip address where interface [[vmnet8]] is listening to. For some reason even a manipulated VMware configuration file (/etc/vmware/vmnet8/nat/nat.conf) doesn't realize the port-forwards which are needed to reach the TrixBox virtual machine; the used configuration is<br />
<br />
csg9101@wingtip114 [~] : cat /home/scratch/trixbox\ 2.0/nat.conf<br />
# Linux NAT configuration file<br />
[host]<br />
# NAT gateway address<br />
ip = 192.168.5.2<br />
netmask = 255.255.255.0<br />
# or ip = 192.168.5.2/24<br />
<br />
# enable configuration; disabled by default for security reasons<br />
#configport = 33445<br />
<br />
# VMnet device if not specified on command line<br />
device = /dev/vmnet8<br />
<br />
# Allow PORT/EPRT FTP commands (they need incoming TCP stream...)<br />
activeFTP = 1<br />
<br />
# Allows the source to have any OUI. Turn this one if you change the OUI<br />
# in the MAC address of your virtual machines.<br />
#allowAnyOUI = 1<br />
<br />
[udp]<br />
# Timeout in seconds, 0 = no timeout, default = 60; real value might<br />
# be up to 100% longer<br />
timeout = 60<br />
<br />
[incomingtcp]<br />
# Use these with care - anyone can enter into your VM through these...<br />
<br />
# FTP (both active and passive FTP is always enabled)<br />
# ftp localhost 8887<br />
8887 = 192.168.5.128:21<br />
<br />
# WEB (make sure that if you are using named webhosting, names point to<br />
# your host, not to guest... And if you are forwarding port other<br />
# than 80 make sure that your server copes with mismatched port<br />
# number in Host: header)<br />
# lynx http://localhost:8888<br />
8888 = 192.168.5.128:80<br />
<br />
# SSH<br />
# ssh -p 8889 root@localhost<br />
8889 = 192.168.5.128:22<br />
<br />
[incomingudp]<br />
# UDP port forwarding example<br />
#6000 = 192.168.5.128:6001<br />
<br />
# IAX1 - port forward for the obsolete IAX ver 1 protocol<br />
# essential for trixbox/asterisk<br />
4569 = 192.168.5.128:4569<br />
<br />
# IAX2 - port forward for the IAX ver 2 protocol<br />
# essential for trixbox/asterisk<br />
5036 = 192.168.5.128:5036<br />
<br />
In this case the virtual machine has the ip 192.168.5.128 and a series op network port are mapped to it; unfortunately it doesn't seem to work:<br />
* from the outside world it is not possible to open any connection towards the TrixBox, i.e. not by usig the real machine's ip and port 8888 nor using the "VMware router" at adress 192.168.5.2 and port 8888<br />
* from the local Linux OS it is possible to connect to the TrixBox through its ip; this is not sufficient as it's not possible to connect from ''another'' machine.<br />
<br />
=== Network Bridging ===<br />
<br />
The other main way to provide network connectivity to the virtual TrixBox is to set up VMware using ''Bridging''.<br />
According to the VMware documentation, this should happen by selecting Bridging among the network interface properties in the VMware System Console. Moreover, the virtual OS should ''copy'' the host OS's ip. This of course generates a ip address conflict, hampering the virtual system's connectivity.<br />
The official workaround is to allow duplicate ip's, but unfortunately the documentation doesn't provide a clear way to configure this and no particular option is provided by the VMware System Console's UI.<br />
<br />
A solution is to assign a new free ip address to the virtual TrixBox (ofcourse, this needs to be done in ''agreement'' with the network administrator/policy ('''!''') ). In this case, the virtual TrixBox can also play as ''gateway'' for itself.<br />
This enables full communication to the Virtual TrixBox from and to the host machine '''and''' the outside world.<br />
<br />
This is the used network configuration file:<br />
<br />
[root@asterisk1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0<br />
DEVICE=eth0<br />
ONBOOT=yes<br />
BOOTPROTO=static<br />
IPADDR=129.125.21.240<br />
NETMASK=255.255.0.0<br />
GATEWAY=129.125.21.240</div>Gijshttps://wiki.td-er.nl/index.php?title=File:Wireshark-Dundi-packets.png&diff=2193File:Wireshark-Dundi-packets.png2007-02-27T10:55:29Z<p>Gijs: </p>
<hr />
<div></div>Gijshttps://wiki.td-er.nl/index.php?title=DUNDi_network_traffic&diff=2192DUNDi network traffic2007-02-27T10:55:06Z<p>Gijs: </p>
<hr />
<div>[[Asterisk DUNDi debug]]<br />
<br />
<br />
[[image:Wireshark-Dundi-packets.png]]<br />
<br />
Legenda:<br />
* black: <tt>udp.srcport == 4520 </tt><br />
* red: <tt>udp.srcport == 4520 && ip.src==192.168.1.101</tt><br />
* green: <tt>udp.srcport == 4520 && ip.src==192.168.1.103</tt><br />
* blue: <tt>udp.srcport == 4520 && ip.src==192.168.1.106</tt></div>Gijshttps://wiki.td-er.nl/index.php?title=DUNDi_configuration&diff=2191DUNDi configuration2007-02-27T10:21:15Z<p>Gijs: </p>
<hr />
<div>In order to keep our config files clean, we edited the <tt>*_custom.conf</tt> files, where possible.<br />
<br />
==Configuring DUNDi==<br />
For making DUNDi work, you have to edit three Asterisk configuration files. The three files are <tt>dundi.conf</tt>, <tt>iax.conf</tt>, and <tt>extensions.conf</tt>. These are in <tt>/etc/asterisk/</tt> on the Trixbox. <br />
* <tt>dundi.conf</tt> controls peer authentication.<br />
* <tt>iax.conf</tt> is our transport protocol.<br />
* <tt>extensions.conf</tt> contains your dialplans. <br />
<br />
This example connects three peers, '''PBX1''' , '''PBX2''' and '''PBX3'''. <br />
<br />
===iax.conf===<br />
First edit <tt>iax.conf</tt>. Add the following lines, except for any that are duplicated in the <tt>[general]</tt> section: <br />
<br />
[koekje]<br />
type=user<br />
dbsecret=dundi/secret ; the password used by others to make an IAX connection to this machine.<br />
context=from-internal ; this context must not be changed when using Trixbox.<br />
regcontext=d_adv ; used for registration of connected phones.<br />
disallow=all<br />
allow=ulaw<br />
allow=alaw<br />
allow=gsm<br />
<br />
===dundi.conf===<br />
Now edit <tt>dundi.conf</tt>. The default file is well commented and has lots of examples--you'll find definitions of all the directives in there. This is where your mapping contexts are defined, which follow this format: <br />
<br />
<tt>dundi_context => local_context,weight,technology,destination,[options]</tt><br />
<br />
The following configuration creates two DUNDi mapping contexts: <br />
<br />
The General section:<br />
[general]<br />
port=4520<br />
entityid=00:0C:29:97:0B:98 ; This is the mac address of eth0<br />
cachetime=5<br />
ttl=32<br />
autokill=yes<br />
secretpath=dundi<br />
*<tt>entityid</tt> is optional. When not specified, the MAC-address of the first networkcard is used.<br />
*<tt>ttl</tt> specifies the max. number of peer-redirects are allowed.<br />
*<tt>cachetime</tt> is in seconds.<br />
*<tt>autokill</tt> speeds up the requests when a peer is not available.<br />
department=Rubzzzz<br />
organization=Rubzzzz, Inc.<br />
locality=Stad<br />
stateprov=Gr<br />
country=NL<br />
email=your@email.com<br />
phone=+12565551212<br />
<br />
The mappings tell us what to advertise in the DUNDi network. <br />
N.B. each is 1 long line in the config file.<br />
[mappings]<br />
priv => dundi-priv-local-custom,0,IAX2,koekje:${SECRET}@192.168.1.101/${NUMBER},nounsolicited,nocomunsolicit,nopartial<br />
<br />
The peers each have a section with the MAC-address of the peer as name.<br />
[00:0C:29:A7:E0:73] ; MAC address of TrixBox2 eth0<br />
model = symmetric<br />
host = 192.168.1.103<br />
inkey = dundi<br />
outkey = dundi<br />
include = priv<br />
permit = priv<br />
qualify = yes<br />
dynamic=yes<br />
<br />
;[00:0C:29:D2:D8:EC] ; MAC address of TrixBox3 eth0<br />
;model = symmetric<br />
;host = 192.168.1.106<br />
;inkey = dundi<br />
;outkey = dundi<br />
;include = priv<br />
;permit = priv<br />
;qualify = yes<br />
;dynamic=yes<br />
<br />
You need to create RSA authentication keys for your server. You may name them anything you want; a good naming convention is to use your server's fully-qualified domain name. <br />
In the above example we used the same key for all PBX's.<br />
Create keys with these commands: <br />
<br />
# cd /var/lib/asterisk/keys<br />
# /usr/sbin/astgenkey -n myhost.mynet.com<br />
<br />
This creates two keys: <tt>myhost.mynet.com.pub</tt> and <tt>myhost.mynet.com.key</tt>. The public key, <tt>myhost.mynet.com.pub</tt>, must be distributed to all servers you are peering with. (in the <tt>/var/lib/asterisk/keys<br />
</tt> directory) Post it on your Web site if you like. The ''private key'' is unencrypted, and like all private encryption keys '''must be guarded carefully'''. Then the <tt>res_crypto.so</tt> line interface:<br />
<br />
# asterisk -r<br />
asterisk1*CLI># reload res_crypto.so<br />
asterisk1*CLI># reload pbx_dundi.so<br />
<br />
From here you can also run the command <tt>show keys</tt> to see all of your RSA keys. <br />
<br />
<tt>dundi/secret</tt> is an encryption key automatically generated by Asterisk. You may view this key by running the <tt>database show</tt> command from the Asterisk CLI. <br />
N.B. this key will change periodically (default 3600 sec)<br />
<br />
===extensions_custom.conf===<br />
<br />
Finally, edit <tt>extensions_custom.conf</tt>; this is where you define what numbers to share and what to do with them. Telephone numbers must follow this format:<br />
<br />
<tt>country_code area_code prefix number</tt><br />
<br />
N.B. make sure you leave the lines at the beginning (2 <tt>#include</tt> lines) and the end (the <tt>[from-internal-custom]</tt> section) the same if you're using Trixbox.<br />
<br />
; This file contains example extensions_custom.conf entries.<br />
; extensions_custom.conf should be used to include customizations<br />
; to AMP's Asterisk dialplan.<br />
; All custom context should contain the string 'custom' in it's name <br />
; Extensions in AMP have access to the 'from-internal' context.<br />
; The context 'from-internal-custom' is included in 'from-internal' by default<br />
<br />
#include extensions_trixbox.conf<br />
#include extensions_hud.conf<br />
<br />
[macro-dundi-lookup-custom]<br />
; Goto the extension number. Check the local context first, followed by lookup<br />
; dundi-priv-lookup is a pointer to the switch statement which will look for<br />
; extensions on other machines. This allows the convergence of multiple<br />
; Asterisk servers with different extension number blocks. Very cool!<br />
;<br />
exten => s,1,Goto(${ARG1},1)<br />
include => dundi-priv-local-custom<br />
include => dundi-priv-lookup-custom<br />
<br />
[dundi-pstn-local-custom]<br />
<br />
[dundi-priv-local-custom]<br />
; we only have extensions 1300 -> 1399 locally<br />
exten => _13XX,1,Macro(dial,${EXTEN})<br />
<br />
[dundi-priv-lookup-custom]<br />
; Check our private peers for the exten #. Search 'priv' dundi context<br />
switch => DUNDi/priv<br />
<br />
[dundi-priv-incoming-custom]<br />
; when we get an incoming call from a private peer, it gets directed here<br />
include => dundi-priv-local-custom<br />
<br />
;------------------------------------------------------------------------------<br />
; Outgoing Calls Contexts<br />
;------------------------------------------------------------------------------<br />
<br />
[local-custom]<br />
; For extensions starting with 1000 -> 1099 and 1600 -> 1699 do a dundi-lookup (private extens)<br />
exten => _1[06]XX,1,Macro(dundi-lookup-custom,${EXTEN})<br />
<br />
[from-internal-custom]<br />
include => local-custom<br />
include => from-internal-trixbox<br />
<br />
== SIP registration ==<br />
Add the following to <tt>sip.conf</tt>:<br />
regcontext=sipregistration<br />
Once the phones, in this example 201 and 202 register with the PBX, a context of<br />
[sipregistration] appears and can be shown in the Asterisk CLI:<br />
asterisk1*CLI> show dialplan sipregistration<br />
[ Context 'sipregistration' created by 'SIP' ]<br />
'201' => 1. Noop(201) [SIP]<br />
'202' => 1. Noop(202) [SIP]<br />
-= 2 extensions (2 priorities) in 1 context. =-<br />
<br />
<br />
== DUNDi CLI-checks ==<br />
===1001@priv:===<br />
asterisk1*CLI> dundi lookup 1001@priv<br />
1. 0 IAX2/priv:ZUIkF+Wl0TuXtd13pK5UXQ@192.168.1.106/1001 (EXISTS|NOUNSLCTD|NOCOMUNSLTD)<br />
from 00:0c:29:d2:d8:ec, expires in 5 s<br />
DUNDi lookup completed in 89 ms<br />
<br />
<br />
===1301@priv:===<br />
asterisk1*CLI> dundi lookup 1301@priv<br />
1. 0 IAX2/priv:NbJdfOHodguANV0MOKuaQg@192.168.1.101/1301 (EXISTS|NOUNSLCTD|NOCOMUNSLTD)<br />
from 00:0c:29:97:0b:98, expires in 5 s<br />
DUNDi lookup completed in 52 ms<br />
<br />
===1601@priv:===<br />
asterisk1*CLI> dundi lookup 1601@priv<br />
1. 0 IAX2/priv:cZzQREFhaxEiS5w22f2Oag@192.168.1.103/1601 (EXISTS|NOUNSLCTD|NOCOMUNSLTD)<br />
from 00:0c:29:a7:e0:73, expires in 5 s<br />
DUNDi lookup completed in 44 ms<br />
<br />
<br />
* [[Asterisk DUNDi debug]] - Analysis of DUNDi traffic with Asterisk's debug.<br />
* [http://www.asteriskguru.com/tutorials/cli_cmd_14_page10.html List of Asterisk1.4 dundi-CLI-commands]</div>Gijshttps://wiki.td-er.nl/index.php?title=DUNDi_configuration&diff=2190DUNDi configuration2007-02-27T10:20:40Z<p>Gijs: /* DUNDi CLI-checks */</p>
<hr />
<div>In order to keep our config files clean, we edited the <tt>*_custom.conf</tt> files, where possible.<br />
<br />
==Configuring DUNDi==<br />
For making DUNDi work, you have to edit three Asterisk configuration files. The three files are <tt>dundi.conf</tt>, <tt>iax.conf</tt>, and <tt>extensions.conf</tt>. These are in <tt>/etc/asterisk/</tt> on the Trixbox. <br />
* <tt>dundi.conf</tt> controls peer authentication.<br />
* <tt>iax.conf</tt> is our transport protocol.<br />
* <tt>extensions.conf</tt> contains your dialplans. <br />
<br />
This example connects three peers, '''PBX1''' , '''PBX2''' and '''PBX3'''. <br />
<br />
===iax.conf===<br />
First edit <tt>iax.conf</tt>. Add the following lines, except for any that are duplicated in the <tt>[general]</tt> section: <br />
<br />
[koekje]<br />
type=user<br />
dbsecret=dundi/secret ; the password used by others to make an IAX connection to this machine.<br />
context=from-internal ; this context must not be changed when using Trixbox.<br />
regcontext=d_adv ; used for registration of connected phones.<br />
disallow=all<br />
allow=ulaw<br />
allow=alaw<br />
allow=gsm<br />
<br />
===dundi.conf===<br />
Now edit <tt>dundi.conf</tt>. The default file is well commented and has lots of examples--you'll find definitions of all the directives in there. This is where your mapping contexts are defined, which follow this format: <br />
<br />
<tt>dundi_context => local_context,weight,technology,destination,[options]</tt><br />
<br />
The following configuration creates two DUNDi mapping contexts: <br />
<br />
The General section:<br />
[general]<br />
port=4520<br />
entityid=00:0C:29:97:0B:98 ; This is the mac address of eth0<br />
cachetime=5<br />
ttl=32<br />
autokill=yes<br />
secretpath=dundi<br />
*<tt>entityid</tt> is optional. When not specified, the MAC-address of the first networkcard is used.<br />
*<tt>ttl</tt> specifies the max. number of peer-redirects are allowed.<br />
*<tt>cachetime</tt> is in seconds.<br />
*<tt>autokill</tt> speeds up the requests when a peer is not available.<br />
department=Rubzzzz<br />
organization=Rubzzzz, Inc.<br />
locality=Stad<br />
stateprov=Gr<br />
country=NL<br />
email=your@email.com<br />
phone=+12565551212<br />
<br />
The mappings tell us what to advertise in the DUNDi network. <br />
N.B. each is 1 long line in the config file.<br />
[mappings]<br />
priv => dundi-priv-local-custom,0,IAX2,koekje:${SECRET}@192.168.1.101/${NUMBER},nounsolicited,nocomunsolicit,nopartial<br />
<br />
The peers each have a section with the MAC-address of the peer as name.<br />
[00:0C:29:A7:E0:73] ; MAC address of TrixBox2 eth0<br />
model = symmetric<br />
host = 192.168.1.103<br />
inkey = dundi<br />
outkey = dundi<br />
include = priv<br />
permit = priv<br />
qualify = yes<br />
dynamic=yes<br />
<br />
;[00:0C:29:D2:D8:EC] ; MAC address of TrixBox3 eth0<br />
;model = symmetric<br />
;host = 192.168.1.106<br />
;inkey = dundi<br />
;outkey = dundi<br />
;include = priv<br />
;permit = priv<br />
;qualify = yes<br />
;dynamic=yes<br />
<br />
You need to create RSA authentication keys for your server. You may name them anything you want; a good naming convention is to use your server's fully-qualified domain name. <br />
In the above example we used the same key for all PBX's.<br />
Create keys with these commands: <br />
<br />
# cd /var/lib/asterisk/keys<br />
# /usr/sbin/astgenkey -n myhost.mynet.com<br />
<br />
This creates two keys: <tt>myhost.mynet.com.pub</tt> and <tt>myhost.mynet.com.key</tt>. The public key, <tt>myhost.mynet.com.pub</tt>, must be distributed to all servers you are peering with. (in the <tt>/var/lib/asterisk/keys<br />
</tt> directory) Post it on your Web site if you like. The ''private key'' is unencrypted, and like all private encryption keys '''must be guarded carefully'''. Then the <tt>res_crypto.so</tt> line interface:<br />
<br />
# asterisk -r<br />
asterisk1*CLI># reload res_crypto.so<br />
asterisk1*CLI># reload pbx_dundi.so<br />
<br />
From here you can also run the command <tt>show keys</tt> to see all of your RSA keys. <br />
<br />
<tt>dundi/secret</tt> is an encryption key automatically generated by Asterisk. You may view this key by running the <tt>database show</tt> command from the Asterisk CLI. <br />
N.B. this key will change periodically (default 3600 sec)<br />
<br />
===extensions_custom.conf===<br />
<br />
Finally, edit <tt>extensions_custom.conf</tt>; this is where you define what numbers to share and what to do with them. Telephone numbers must follow this format:<br />
<br />
<tt>country_code area_code prefix number</tt><br />
<br />
N.B. make sure you leave the lines at the beginning (2 <tt>#include</tt> lines) and the end (the <tt>[from-internal-custom]</tt> section) the same if you're using Trixbox.<br />
<br />
; This file contains example extensions_custom.conf entries.<br />
; extensions_custom.conf should be used to include customizations<br />
; to AMP's Asterisk dialplan.<br />
; All custom context should contain the string 'custom' in it's name <br />
; Extensions in AMP have access to the 'from-internal' context.<br />
; The context 'from-internal-custom' is included in 'from-internal' by default<br />
<br />
#include extensions_trixbox.conf<br />
#include extensions_hud.conf<br />
<br />
[macro-dundi-lookup-custom]<br />
; Goto the extension number. Check the local context first, followed by lookup<br />
; dundi-priv-lookup is a pointer to the switch statement which will look for<br />
; extensions on other machines. This allows the convergence of multiple<br />
; Asterisk servers with different extension number blocks. Very cool!<br />
;<br />
exten => s,1,Goto(${ARG1},1)<br />
include => dundi-priv-local-custom<br />
include => dundi-priv-lookup-custom<br />
<br />
[dundi-pstn-local-custom]<br />
<br />
[dundi-priv-local-custom]<br />
; we only have extensions 1300 -> 1399 locally<br />
exten => _13XX,1,Macro(dial,${EXTEN})<br />
<br />
[dundi-priv-lookup-custom]<br />
; Check our private peers for the exten #. Search 'priv' dundi context<br />
switch => DUNDi/priv<br />
<br />
[dundi-priv-incoming-custom]<br />
; when we get an incoming call from a private peer, it gets directed here<br />
include => dundi-priv-local-custom<br />
<br />
;------------------------------------------------------------------------------<br />
; Outgoing Calls Contexts<br />
;------------------------------------------------------------------------------<br />
<br />
[local-custom]<br />
; For extensions starting with 1000 -> 1099 and 1600 -> 1699 do a dundi-lookup (private extens)<br />
exten => _1[06]XX,1,Macro(dundi-lookup-custom,${EXTEN})<br />
<br />
[from-internal-custom]<br />
include => local-custom<br />
include => from-internal-trixbox<br />
<br />
== SIP registration ==<br />
Add the following to <tt>sip.conf</tt>:<br />
regcontext=sipregistration<br />
Once the phones, in this example 201 and 202 register with the PBX, a context of<br />
[sipregistration] appears and can be shown in the Asterisk CLI:<br />
asterisk1*CLI> show dialplan sipregistration<br />
[ Context 'sipregistration' created by 'SIP' ]<br />
'201' => 1. Noop(201) [SIP]<br />
'202' => 1. Noop(202) [SIP]<br />
-= 2 extensions (2 priorities) in 1 context. =-<br />
<br />
<br />
== DUNDi CLI-checks ==<br />
===1001@priv:===<br />
asterisk1*CLI> dundi lookup 1001@priv<br />
1. 0 IAX2/priv:ZUIkF+Wl0TuXtd13pK5UXQ@192.168.1.106/1001 (EXISTS|NOUNSLCTD|NOCOMUNSLTD)<br />
from 00:0c:29:d2:d8:ec, expires in 5 s<br />
DUNDi lookup completed in 89 ms<br />
<br />
<br />
===1301@priv:===<br />
asterisk1*CLI> dundi lookup 1301@priv<br />
1. 0 IAX2/priv:NbJdfOHodguANV0MOKuaQg@192.168.1.101/1301 (EXISTS|NOUNSLCTD|NOCOMUNSLTD)<br />
from 00:0c:29:97:0b:98, expires in 5 s<br />
DUNDi lookup completed in 52 ms<br />
<br />
===1601@priv:===<br />
asterisk1*CLI> dundi lookup 1601@priv<br />
1. 0 IAX2/priv:cZzQREFhaxEiS5w22f2Oag@192.168.1.103/1601 (EXISTS|NOUNSLCTD|NOCOMUNSLTD)<br />
from 00:0c:29:a7:e0:73, expires in 5 s<br />
DUNDi lookup completed in 44 ms<br />
<br />
<br />
* [[Asterisk DUNDi debug]] - Analysis of DUNDi traffic with Asterisk's debug.<br />
* [http://www.asteriskguru.com/tutorials/cli_cmd_14_page10.html List of Asterisk1.4 dundi-CLI-commands]<br />
<br />
== Alternatives to DUNDi ==<br />
You can also try the TDMoE zaptel driver. This is similar to the ztdummy driver in some ways but it will link 2 or more PBX's on the same physical network with zap channels. So on a 100Mb ethernet interface you could potentially get the equivalent of about 50 PRI lines. Overkill maybe, but you can set the number of channels you want. This should be good for interconnecting a voicemail only Trixbox with another tribox handling the calls. In larger installs this would be useful as it offloads the voicemail agi scripts and transcoding to another box. TDMoE is also much simpler to configure in comparison to DUNDI.<br />
<br />
you get many of the same features as you do with normal zap channels. It is also very efficient on bandwidth and cpu.<br />
<br />
DUNDI is a good solution for remote PBX's. ([http://www.trixbox.org/modules/newbb/viewtopic.php?topic_id=4361&forum=1 Source])</div>Gijshttps://wiki.td-er.nl/index.php?title=DUNDi_configuration&diff=2189DUNDi configuration2007-02-27T10:18:35Z<p>Gijs: /* Configuring DUNDi */</p>
<hr />
<div>In order to keep our config files clean, we edited the <tt>*_custom.conf</tt> files, where possible.<br />
<br />
==Configuring DUNDi==<br />
For making DUNDi work, you have to edit three Asterisk configuration files. The three files are <tt>dundi.conf</tt>, <tt>iax.conf</tt>, and <tt>extensions.conf</tt>. These are in <tt>/etc/asterisk/</tt> on the Trixbox. <br />
* <tt>dundi.conf</tt> controls peer authentication.<br />
* <tt>iax.conf</tt> is our transport protocol.<br />
* <tt>extensions.conf</tt> contains your dialplans. <br />
<br />
This example connects three peers, '''PBX1''' , '''PBX2''' and '''PBX3'''. <br />
<br />
===iax.conf===<br />
First edit <tt>iax.conf</tt>. Add the following lines, except for any that are duplicated in the <tt>[general]</tt> section: <br />
<br />
[koekje]<br />
type=user<br />
dbsecret=dundi/secret ; the password used by others to make an IAX connection to this machine.<br />
context=from-internal ; this context must not be changed when using Trixbox.<br />
regcontext=d_adv ; used for registration of connected phones.<br />
disallow=all<br />
allow=ulaw<br />
allow=alaw<br />
allow=gsm<br />
<br />
===dundi.conf===<br />
Now edit <tt>dundi.conf</tt>. The default file is well commented and has lots of examples--you'll find definitions of all the directives in there. This is where your mapping contexts are defined, which follow this format: <br />
<br />
<tt>dundi_context => local_context,weight,technology,destination,[options]</tt><br />
<br />
The following configuration creates two DUNDi mapping contexts: <br />
<br />
The General section:<br />
[general]<br />
port=4520<br />
entityid=00:0C:29:97:0B:98 ; This is the mac address of eth0<br />
cachetime=5<br />
ttl=32<br />
autokill=yes<br />
secretpath=dundi<br />
*<tt>entityid</tt> is optional. When not specified, the MAC-address of the first networkcard is used.<br />
*<tt>ttl</tt> specifies the max. number of peer-redirects are allowed.<br />
*<tt>cachetime</tt> is in seconds.<br />
*<tt>autokill</tt> speeds up the requests when a peer is not available.<br />
department=Rubzzzz<br />
organization=Rubzzzz, Inc.<br />
locality=Stad<br />
stateprov=Gr<br />
country=NL<br />
email=your@email.com<br />
phone=+12565551212<br />
<br />
The mappings tell us what to advertise in the DUNDi network. <br />
N.B. each is 1 long line in the config file.<br />
[mappings]<br />
priv => dundi-priv-local-custom,0,IAX2,koekje:${SECRET}@192.168.1.101/${NUMBER},nounsolicited,nocomunsolicit,nopartial<br />
<br />
The peers each have a section with the MAC-address of the peer as name.<br />
[00:0C:29:A7:E0:73] ; MAC address of TrixBox2 eth0<br />
model = symmetric<br />
host = 192.168.1.103<br />
inkey = dundi<br />
outkey = dundi<br />
include = priv<br />
permit = priv<br />
qualify = yes<br />
dynamic=yes<br />
<br />
;[00:0C:29:D2:D8:EC] ; MAC address of TrixBox3 eth0<br />
;model = symmetric<br />
;host = 192.168.1.106<br />
;inkey = dundi<br />
;outkey = dundi<br />
;include = priv<br />
;permit = priv<br />
;qualify = yes<br />
;dynamic=yes<br />
<br />
You need to create RSA authentication keys for your server. You may name them anything you want; a good naming convention is to use your server's fully-qualified domain name. <br />
In the above example we used the same key for all PBX's.<br />
Create keys with these commands: <br />
<br />
# cd /var/lib/asterisk/keys<br />
# /usr/sbin/astgenkey -n myhost.mynet.com<br />
<br />
This creates two keys: <tt>myhost.mynet.com.pub</tt> and <tt>myhost.mynet.com.key</tt>. The public key, <tt>myhost.mynet.com.pub</tt>, must be distributed to all servers you are peering with. (in the <tt>/var/lib/asterisk/keys<br />
</tt> directory) Post it on your Web site if you like. The ''private key'' is unencrypted, and like all private encryption keys '''must be guarded carefully'''. Then the <tt>res_crypto.so</tt> line interface:<br />
<br />
# asterisk -r<br />
asterisk1*CLI># reload res_crypto.so<br />
asterisk1*CLI># reload pbx_dundi.so<br />
<br />
From here you can also run the command <tt>show keys</tt> to see all of your RSA keys. <br />
<br />
<tt>dundi/secret</tt> is an encryption key automatically generated by Asterisk. You may view this key by running the <tt>database show</tt> command from the Asterisk CLI. <br />
N.B. this key will change periodically (default 3600 sec)<br />
<br />
===extensions_custom.conf===<br />
<br />
Finally, edit <tt>extensions_custom.conf</tt>; this is where you define what numbers to share and what to do with them. Telephone numbers must follow this format:<br />
<br />
<tt>country_code area_code prefix number</tt><br />
<br />
N.B. make sure you leave the lines at the beginning (2 <tt>#include</tt> lines) and the end (the <tt>[from-internal-custom]</tt> section) the same if you're using Trixbox.<br />
<br />
; This file contains example extensions_custom.conf entries.<br />
; extensions_custom.conf should be used to include customizations<br />
; to AMP's Asterisk dialplan.<br />
; All custom context should contain the string 'custom' in it's name <br />
; Extensions in AMP have access to the 'from-internal' context.<br />
; The context 'from-internal-custom' is included in 'from-internal' by default<br />
<br />
#include extensions_trixbox.conf<br />
#include extensions_hud.conf<br />
<br />
[macro-dundi-lookup-custom]<br />
; Goto the extension number. Check the local context first, followed by lookup<br />
; dundi-priv-lookup is a pointer to the switch statement which will look for<br />
; extensions on other machines. This allows the convergence of multiple<br />
; Asterisk servers with different extension number blocks. Very cool!<br />
;<br />
exten => s,1,Goto(${ARG1},1)<br />
include => dundi-priv-local-custom<br />
include => dundi-priv-lookup-custom<br />
<br />
[dundi-pstn-local-custom]<br />
<br />
[dundi-priv-local-custom]<br />
; we only have extensions 1300 -> 1399 locally<br />
exten => _13XX,1,Macro(dial,${EXTEN})<br />
<br />
[dundi-priv-lookup-custom]<br />
; Check our private peers for the exten #. Search 'priv' dundi context<br />
switch => DUNDi/priv<br />
<br />
[dundi-priv-incoming-custom]<br />
; when we get an incoming call from a private peer, it gets directed here<br />
include => dundi-priv-local-custom<br />
<br />
;------------------------------------------------------------------------------<br />
; Outgoing Calls Contexts<br />
;------------------------------------------------------------------------------<br />
<br />
[local-custom]<br />
; For extensions starting with 1000 -> 1099 and 1600 -> 1699 do a dundi-lookup (private extens)<br />
exten => _1[06]XX,1,Macro(dundi-lookup-custom,${EXTEN})<br />
<br />
[from-internal-custom]<br />
include => local-custom<br />
include => from-internal-trixbox<br />
<br />
== SIP registration ==<br />
Add the following to <tt>sip.conf</tt>:<br />
regcontext=sipregistration<br />
Once the phones, in this example 201 and 202 register with the PBX, a context of<br />
[sipregistration] appears and can be shown in the Asterisk CLI:<br />
asterisk1*CLI> show dialplan sipregistration<br />
[ Context 'sipregistration' created by 'SIP' ]<br />
'201' => 1. Noop(201) [SIP]<br />
'202' => 1. Noop(202) [SIP]<br />
-= 2 extensions (2 priorities) in 1 context. =-<br />
<br />
<br />
== DUNDi CLI-checks ==<br />
* '''dundi lookup''':<br />
asterisk1*CLI> dundi lookup 301@priv bypass<br />
1. 0 IAX2/priv:ByWFbOGKgGmZbM43BJHSZw@2.4tw.nl/301 (EXISTS)<br />
from 00:0c:29:d2:d8:ec, expires in 3600 s<br />
DUNDi lookup completed in 113 ms<br />
<br />
asterisk1*CLI> dundi lookup 202@priv<br />
1. 0 IAX2/priv:+DmRAz4RjwF6GQMC3zopfQ@1.4tw.nl/202 (EXISTS)<br />
from 00:0c:29:e4:14:80, expires in 3570 s<br />
DUNDi lookup completed in 13 ms<br />
<br />
<br />
* [[Asterisk DUNDi debug]] - Analysis of DUNDi traffic with Asterisk's debug.<br />
* [http://www.asteriskguru.com/tutorials/cli_cmd_14_page10.html List of Asterisk1.4 dundi-CLI-commands]<br />
<br />
== Alternatives to DUNDi ==<br />
You can also try the TDMoE zaptel driver. This is similar to the ztdummy driver in some ways but it will link 2 or more PBX's on the same physical network with zap channels. So on a 100Mb ethernet interface you could potentially get the equivalent of about 50 PRI lines. Overkill maybe, but you can set the number of channels you want. This should be good for interconnecting a voicemail only Trixbox with another tribox handling the calls. In larger installs this would be useful as it offloads the voicemail agi scripts and transcoding to another box. TDMoE is also much simpler to configure in comparison to DUNDI.<br />
<br />
you get many of the same features as you do with normal zap channels. It is also very efficient on bandwidth and cpu.<br />
<br />
DUNDI is a good solution for remote PBX's. ([http://www.trixbox.org/modules/newbb/viewtopic.php?topic_id=4361&forum=1 Source])</div>Gijshttps://wiki.td-er.nl/index.php?title=DUNDi_configuration&diff=2188DUNDi configuration2007-02-27T09:41:01Z<p>Gijs: </p>
<hr />
<div>In order to keep our config files clean, we edited the <tt>*_custom.conf</tt> files, where possible.<br />
<br />
==Configuring DUNDi==<br />
For making DUNDi work, you have to edit three Asterisk configuration files. The three files are <tt>dundi.conf</tt>, <tt>iax.conf</tt>, and <tt>extensions.conf</tt>. These are in <tt>/etc/asterisk/</tt> on the Trixbox. <br />
* <tt>dundi.conf</tt> controls peer authentication.<br />
* <tt>iax.conf</tt> is our transport protocol.<br />
* <tt>extensions.conf</tt> contains your dialplans. <br />
<br />
This example connects three peers, '''PBX1''' , '''PBX2''' and '''PBX3'''. <br />
<br />
First edit <tt>iax.conf</tt>. Add the following lines, except for any that are duplicated in the <tt>[general]</tt> section: <br />
<br />
[koekje]<br />
type=user<br />
dbsecret=dundi/secret ; the password used by others to make an IAX connection to this machine.<br />
context=from-internal ; this context must not be changed when using Trixbox.<br />
regcontext=d_adv ; used for registration of connected phones.<br />
disallow=all<br />
allow=ulaw<br />
allow=alaw<br />
allow=gsm<br />
<br />
Now edit <tt>dundi.conf</tt>. The default file is well commented and has lots of examples--you'll find definitions of all the directives in there. This is where your mapping contexts are defined, which follow this format: <br />
<br />
<tt>dundi_context => local_context,weight,technology,destination,[options]</tt><br />
<br />
The following configuration creates two DUNDi mapping contexts: <br />
<br />
[general]<br />
port=4520<br />
entityid=00:0C:29:97:0B:98 ; This is the mac address of eth0<br />
cachetime=5<br />
ttl=32<br />
autokill=yes<br />
secretpath=dundi<br />
<br />
department=Rubzzzz<br />
organization=Rubzzzz, Inc.<br />
locality=Stad<br />
stateprov=Gr<br />
country=NL<br />
email=your@email.com<br />
phone=+12565551212<br />
<br />
[mappings]<br />
priv => dundi-priv-local-custom,0,IAX2,koekje:${SECRET}@192.168.1.101/${NUMBER},nounsolicited,nocomunsolicit,nopartial<br />
<br />
[00:0C:29:A7:E0:73] ; MAC address of TrixBox2 eth0<br />
model = symmetric<br />
host = 192.168.1.103<br />
inkey = dundi<br />
outkey = dundi<br />
include = priv<br />
permit = priv<br />
qualify = yes<br />
dynamic=yes<br />
<br />
;[00:0C:29:D2:D8:EC] ; MAC address of TrixBox3 eth0<br />
;model = symmetric<br />
;host = 192.168.1.106<br />
;inkey = dundi<br />
;outkey = dundi<br />
;include = priv<br />
;permit = priv<br />
;qualify = yes<br />
;dynamic=yes<br />
<br />
You need to create RSA authentication keys for your server. You may name them anything you want; a good naming convention is to use your server's fully-qualified domain name. Create keys with these commands: <br />
<br />
# cd /var/lib/asterisk/keys<br />
# /usr/sbin/astgenkey -n myhost.mynet.com<br />
<br />
This creates two keys: <tt>myhost.mynet.com.pub</tt> and <tt>myhost.mynet.com.key</tt>. The public key, <tt>myhost.mynet.com.pub</tt>, must be distributed to all servers you are peering with. Post it on your Web site if you like. The ''private key'' is unencrypted, and like all private encryption keys '''must be guarded carefully'''. Then the <tt>res_crypto.so</tt> line interface:<br />
<br />
# asterisk -r<br />
asterisk1*CLI># reload res_crypto.so<br />
asterisk1*CLI># reload pbx_dundi.so<br />
<br />
From here you can also run the command <tt>show keys</tt> to see all of your RSA keys. Now go back to <tt>iax.conf</tt> and add the dundi user. <br />
<br />
Here is a quick Linux tip: you don't have to exit the Asterisk CLI to return to the Linux command line. If you're logging in remotely, just open a second SSH session. If you're on the Asterisk server, switch to a second console with Alt+F2. <br />
<br />
This allows remote access to your server: <br />
<br />
[dundi]<br />
type=user<br />
dbsecret=dundi/secret<br />
context=dundi-priv-local<br />
disallow=all<br />
allow=ulaw<br />
allow=g726<br />
<br />
<tt>dundi/secret</tt> is an encryption key automatically generated by Asterisk. You may view this key by running the <tt>database show</tt> command from the Asterisk CLI. <br />
<br />
Finally, edit <tt>extensions.conf</tt>; this is where you define what numbers to share and what to do with them. Telephone numbers must follow this format:<br />
<br />
country_code area_code prefix number<br />
<br />
This is a simple example that answers incoming calls, directs them via the ''SIP'' protocol to extension ''200'', which is the digital assistant, sends the caller to voicemail if there is no answer, then hangs up. <br />
<br />
[dundi-priv-local]<br />
exten => 15035551212,1,Answer( )<br />
exten => 15035551212,n(call),Dial(SIP/200)<br />
exten => 15035551212,n,Voicemail(u200)<br />
exten => 15035551212,n,Hangup( )<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
== SIP registration ==<br />
Add the following to <tt>sip.conf</tt>:<br />
regcontext=sipregistration<br />
Once the phones, in this example 201 and 202 register with the PBX, a context of<br />
[sipregistration] appears and can be shown in the Asterisk CLI:<br />
asterisk1*CLI> show dialplan sipregistration<br />
[ Context 'sipregistration' created by 'SIP' ]<br />
'201' => 1. Noop(201) [SIP]<br />
'202' => 1. Noop(202) [SIP]<br />
-= 2 extensions (2 priorities) in 1 context. =-<br />
<br />
<br />
== DUNDi CLI-checks ==<br />
* '''dundi lookup''':<br />
asterisk1*CLI> dundi lookup 301@priv bypass<br />
1. 0 IAX2/priv:ByWFbOGKgGmZbM43BJHSZw@2.4tw.nl/301 (EXISTS)<br />
from 00:0c:29:d2:d8:ec, expires in 3600 s<br />
DUNDi lookup completed in 113 ms<br />
<br />
asterisk1*CLI> dundi lookup 202@priv<br />
1. 0 IAX2/priv:+DmRAz4RjwF6GQMC3zopfQ@1.4tw.nl/202 (EXISTS)<br />
from 00:0c:29:e4:14:80, expires in 3570 s<br />
DUNDi lookup completed in 13 ms<br />
<br />
<br />
* [[Asterisk DUNDi debug]] - Analysis of DUNDi traffic with Asterisk's debug.<br />
* [http://www.asteriskguru.com/tutorials/cli_cmd_14_page10.html List of Asterisk1.4 dundi-CLI-commands]<br />
<br />
== Alternatives to DUNDi ==<br />
You can also try the TDMoE zaptel driver. This is similar to the ztdummy driver in some ways but it will link 2 or more PBX's on the same physical network with zap channels. So on a 100Mb ethernet interface you could potentially get the equivalent of about 50 PRI lines. Overkill maybe, but you can set the number of channels you want. This should be good for interconnecting a voicemail only Trixbox with another tribox handling the calls. In larger installs this would be useful as it offloads the voicemail agi scripts and transcoding to another box. TDMoE is also much simpler to configure in comparison to DUNDI.<br />
<br />
you get many of the same features as you do with normal zap channels. It is also very efficient on bandwidth and cpu.<br />
<br />
DUNDI is a good solution for remote PBX's. ([http://www.trixbox.org/modules/newbb/viewtopic.php?topic_id=4361&forum=1 Source])</div>Gijshttps://wiki.td-er.nl/index.php?title=DUNDi_configuration&diff=2187DUNDi configuration2007-02-27T09:27:41Z<p>Gijs: /* DUNDi CLI-checks */</p>
<hr />
<div>In order to keep our config files clean, we created 2 seperate files for resp. the extensions and the iax-config.<br />
These files are:<br />
extensions_gijs_ruben.conf<br />
iax_gijs_ruben.conf<br />
These are included in the following files:<br />
<tt>extensions.conf:</tt><br />
#include extensions_gijs_ruben.conf<br />
<tt>iax.conf: </tt><br />
#include iax_gijs_ruben.conf<br />
<br />
<br />
<br />
==Configuring DUNDi==<br />
([http://www.linuxplanet.com/linuxplanet/tutorials/6270/2/ Source])<br />
<br />
Warm up your favorite text editor, because we're going to edit three Asterisk configuration files. The three files are <tt>dundi.conf</tt>, <tt>iax.conf</tt>, and <tt>extensions.conf</tt>. These are in <tt>/etc/asterisk/</tt> on Asterisk@Home. <tt>dundi.conf</tt> controls peer authentication, <tt>iax.conf</tt> is our transport protocol, and <tt>extensions.conf</tt> contains your dialplans. <br />
<br />
This example connects two peers, ''MyHost'' and ''OtherHost''. <br />
<br />
First edit <tt>iax.conf</tt>. Add the following lines, except for any that are duplicated in the <tt>[general]</tt> section: <br />
<br />
[dundi]<br />
type=user<br />
dbsecret=dundi/secret<br />
context=dundi-local<br />
disallow=all<br />
allow=ulaw<br />
allow=alaw<br />
allow=g726<br />
<br />
Now edit <tt>dundi.conf</tt>. The default file is well commented and has lots of examples--you'll find definitions of all the directives in there. This is where your mapping contexts are defined, which follow this format: <br />
<br />
dundi_context => local_context,weight,technology,destination,[options]<br />
<br />
The following configuration creates two DUNDi mapping contexts: <br />
<br />
[general]<br />
;put your own information here<br />
department=Boss's office<br />
organization=Alrac, Inc.<br />
locality=Portland<br />
stateprov=OR<br />
country=US<br />
email=hrh@alrac.com<br />
phone=15035551212<br />
;<br />
bindaddr=0.0.0.0<br />
port=4520<br />
;<br />
;use the server's MAC address for the entityid<br />
entityid=11.22.33.44.55.66<br />
cachetime=3600<br />
ttl=32<br />
autokill=yes<br />
secretpath=dundi<br />
;<br />
[mappings]<br />
;copy this as shown, substituting your own server and hostname<br />
;this should be one long unbroken line<br />
dundi-peer1 => dundi-priv-local,0,IAX2,dundi:${SECRET}@myhost.mynet.com ${NUMBER},nounsolicited,nocomunsolicit,nopartial<br />
;our OtherHost peer is configured here<br />
;and is allowed access only to dundi-peer1<br />
[aa:bb:cc:dd:ee:ff] ;MAC address of otherhost.elsewhere.com<br />
model = symmetric<br />
host = otherhost.elsewhere.com<br />
inkey = otherhost.elsewhere.com<br />
outkey = myhost.mynet.com<br />
include = dundi-peer1<br />
permit = dundi-peer1<br />
qualify = yes<br />
dynamic=yes<br />
<br />
You need to create RSA authentication keys for your server. You may name them anything you want; a good naming convention is to use your server's fully-qualified domain name. Create keys with these commands: <br />
<br />
# cd /var/lib/asterisk/keys<br />
# /usr/sbin/astgenkey -n myhost.mynet.com<br />
<br />
This creates two keys: <tt>myhost.mynet.com.pub</tt> and <tt>myhost.mynet.com.key</tt>. The public key, <tt>myhost.mynet.com.pub</tt>, must be distributed to all servers you are peering with. Post it on your Web site if you like. The ''private key'' is unencrypted, and like all private encryption keys '''must be guarded carefully'''. Then the <tt>res_crypto.so</tt> line interface:<br />
<br />
# asterisk -r<br />
asterisk1*CLI># reload res_crypto.so<br />
asterisk1*CLI># reload pbx_dundi.so<br />
<br />
From here you can also run the command <tt>show keys</tt> to see all of your RSA keys. Now go back to <tt>iax.conf</tt> and add the dundi user. <br />
<br />
Here is a quick Linux tip: you don't have to exit the Asterisk CLI to return to the Linux command line. If you're logging in remotely, just open a second SSH session. If you're on the Asterisk server, switch to a second console with Alt+F2. <br />
<br />
This allows remote access to your server: <br />
<br />
[dundi]<br />
type=user<br />
dbsecret=dundi/secret<br />
context=dundi-priv-local<br />
disallow=all<br />
allow=ulaw<br />
allow=g726<br />
<br />
<tt>dundi/secret</tt> is an encryption key automatically generated by Asterisk. You may view this key by running the <tt>database show</tt> command from the Asterisk CLI. <br />
<br />
Finally, edit <tt>extensions.conf</tt>; this is where you define what numbers to share and what to do with them. Telephone numbers must follow this format:<br />
<br />
country_code area_code prefix number<br />
<br />
This is a simple example that answers incoming calls, directs them via the ''SIP'' protocol to extension ''200'', which is the digital assistant, sends the caller to voicemail if there is no answer, then hangs up. <br />
<br />
[dundi-priv-local]<br />
exten => 15035551212,1,Answer( )<br />
exten => 15035551212,n(call),Dial(SIP/200)<br />
exten => 15035551212,n,Voicemail(u200)<br />
exten => 15035551212,n,Hangup( )<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
== SIP registration ==<br />
Add the following to <tt>sip.conf</tt>:<br />
regcontext=sipregistration<br />
Once the phones, in this example 201 and 202 register with the PBX, a context of<br />
[sipregistration] appears and can be shown in the Asterisk CLI:<br />
asterisk1*CLI> show dialplan sipregistration<br />
[ Context 'sipregistration' created by 'SIP' ]<br />
'201' => 1. Noop(201) [SIP]<br />
'202' => 1. Noop(202) [SIP]<br />
-= 2 extensions (2 priorities) in 1 context. =-<br />
<br />
<br />
== DUNDi CLI-checks ==<br />
* '''dundi lookup''':<br />
asterisk1*CLI> dundi lookup 301@priv bypass<br />
1. 0 IAX2/priv:ByWFbOGKgGmZbM43BJHSZw@2.4tw.nl/301 (EXISTS)<br />
from 00:0c:29:d2:d8:ec, expires in 3600 s<br />
DUNDi lookup completed in 113 ms<br />
<br />
asterisk1*CLI> dundi lookup 202@priv<br />
1. 0 IAX2/priv:+DmRAz4RjwF6GQMC3zopfQ@1.4tw.nl/202 (EXISTS)<br />
from 00:0c:29:e4:14:80, expires in 3570 s<br />
DUNDi lookup completed in 13 ms<br />
<br />
<br />
* [[Asterisk DUNDi debug]] - Analysis of DUNDi traffic with Asterisk's debug.<br />
* [http://www.asteriskguru.com/tutorials/cli_cmd_14_page10.html List of Asterisk1.4 dundi-CLI-commands]<br />
<br />
== Alternatives to DUNDi ==<br />
You can also try the TDMoE zaptel driver. This is similar to the ztdummy driver in some ways but it will link 2 or more PBX's on the same physical network with zap channels. So on a 100Mb ethernet interface you could potentially get the equivalent of about 50 PRI lines. Overkill maybe, but you can set the number of channels you want. This should be good for interconnecting a voicemail only Trixbox with another tribox handling the calls. In larger installs this would be useful as it offloads the voicemail agi scripts and transcoding to another box. TDMoE is also much simpler to configure in comparison to DUNDI.<br />
<br />
you get many of the same features as you do with normal zap channels. It is also very efficient on bandwidth and cpu.<br />
<br />
DUNDI is a good solution for remote PBX's. ([http://www.trixbox.org/modules/newbb/viewtopic.php?topic_id=4361&forum=1 Source])</div>Gijshttps://wiki.td-er.nl/index.php?title=Links&diff=2175Links2007-02-23T23:15:50Z<p>Gijs: /* H.323 Links */</p>
<hr />
<div>== Trixbox links ==<br />
* [http://www.voip-info.org/wiki/ Largest Asterisk info site on the net]<br />
* [http://nerdvittles.com Great site with lots of trixbox add-ons and tips]<br />
* [http://asterisktutorials.com Video tutorials on trixbox and Asterisk]<br />
* [http://www.aussievoip.com Australian trixbox and Asterisk wiki site]<br />
* [http://www.sureteq.com/asterisk/ Install guides for trixbox and A2billing]<br />
* [http://dumbme.voipeye.com.au/trixbox/trixbox_without_tears.pdf Tutorial for Trixbox]<br />
* [http://www.elastix.org/ Elastix - a TrixBox fork]<br />
* [http://www.counterpath.com/docs/X-Lite3.0_UserGuide.pdf X-lite 3.0 userguide]<br />
* [http://www.counterpath.com/index.php?menu=download Download X-lite]<br />
* [http://support.counterpath.com/ CounterPath SIP Softphone Support] (a forum)<br />
* [http://www.xten.com/index.php?menu=Products&smenu=compare Comparison between X-lite en Eyebeam]<br />
<br />
== Asterisk links ==<br />
* [http://www.oreilly.com/catalog/asterisk/index.html Asterisk: The Future of Telephony] by O'Reilly. ([http://www.speakup.nl/en/opensource/asterisktfot/AsteriskTFOT.zip download]) ''O’Reilly has licensed the book under the creative commons license and as such, you are free to download and distribute it.''<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk Large collection of Asterisk-related links].<br />
* [http://gathering.tweakers.net/forum/list_messages/1093262 Het grote Asterisk topic op Tweakers]<br />
* [http://www.inaccessnetworks.com/ian/projects/asterisk-oh323/#section2 Asterisk OpenH323 module]<br />
* [http://www.trixbox.org/modules/newbb/viewtopic.php?topic_id=229&forum=6 H323 topic op Trixbox forum]<br />
* [http://www.oreillynet.com/etel/blog/2005/04/telecom_tips_building_your_own.html Telecom Tips] - Building Your Own Conference Bridge.<br />
* [http://www.asteriskdocs.org/modules/tinycontent/content/docbook/current/docs-html/book1.html The Hitchhiker's Guide to Asterisk]<br />
* [http://www.voip-info.org/wiki/view/Asterisk+-+dual+servers Connecting two (or more) Asterisk PBX's] - the principles explained.<br />
<br />
=== Changes between versions ===<br />
* [http://svn.digium.com/view/asterisk/branches/1.2/CHANGES Changes between 1.0 and 1.2]<br />
* [http://svn.digium.com/view/asterisk/branches/1.4/CHANGES Changes between 1.2 and 1.4]<br />
* [http://www.sineapps.com/news.php?rssid=1647 Detailed overview of differences between 1.4 and previous versions]<br />
<br />
=== Asterisk internal commands ===<br />
* [http://www.voip-info.org/wiki-Asterisk+cmd+Goto Goto()]<br />
* [http://www.voip-info.org/wiki-Asterisk+cmd+ChanIsAvail ChanIsAvail()]<br />
* [http://www.voip-info.org/wiki/view/Asterisk+cmd+Macro Macro()]<br />
* [http://www.voip-info.org/wiki/view/Asterisk+-+documentation+of+application+commands Full list of Asterisk application commands]<br />
<br />
== DUNDi links ==<br />
* [http://www.dundi.com/ DUNDi.com]<br />
* [http://www.voip-info.org/wiki-DUNDi Trixbox Configuration of DUNDi by voip-info.org]<br />
* [http://blog.thegoldfish.net/dundi-tutorial-for-asteriskhome/ Trixbox Configuration of DUNDi by thegoldfish.net] (Previous version of Trixbox)<br />
* [http://www.linuxplanet.com/linuxplanet/tutorials/6270/2/ Trixbox Configuration of DUNDi by Carla Schroder]<br />
* [http://taug.ca/talks/2006-02-22/DUNDi.TAUG.2006-02-22.ppt Trixbox Configuration of DUNDi by Leif Madsen, very useful presentation]<br />
* [http://kneh.xs4all.nl/tijmen/asterisk/Using%20DUNDi%20with%20Trixbox.pdf Trixbox Configuration of DUNDi by Tijmen van den Brink] Connecting 3 Trixboxes together, not using DUNDi discovery, but neighbours' MAC-adresses. ([http://www.trixbox.org/modules/newbb/viewtopic.php?topic_id=1834&forum=7 source])<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+config+dundi.conf Asterisk Configuration of DUNDi]<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+func+dundilookup Asterisk function: dundilookup]<br />
<br />
* [http://www.freepbx.org/trac/wiki/DUNDiModule Thoughts about a Dundi Module]<br />
* [http://www.voip-info.org/wiki/index.php?page=DUNDi+peering General DUNDi peering information]<br />
* [http://www.voip-info.org/wiki/view/Asterisk+DUNDi+Call+Routing Asterisk DUNDi call routing]<br />
<br />
== Bandwidth calculators ==<br />
* [http://www.terracall.com/FAQs_white_1.aspx#optimizesoftphone Whitepaper about bandwidth and compression selection for your softphone]<br />
* [http://www.bandcalc.com/ VoIP bandwidth calculator]<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+bandwidth+iax2 Bandwidth by Asterisk and Iax2]<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+bandwidth+iax2 Asterisk bandwidth Iax2]<br />
<br />
== IAX Links ==<br />
<br />
* [http://www.voip-info.org/wiki-IAX Description of IAX/IAX2]<br />
* [http://www.convergence.com.pk/iax2/trunked.html IAX trunk-statistics]<br />
* [http://www.voip-info.org/wiki/view/Asterisk+IAX+channels IAX channels]<br />
* [http://www.voip-info.org/wiki/view/Asterisk+channels Asterisk channels]<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+bandwidth+iax2 Asterisk bandwidth Iax2]<br />
* [http://www.asteriskguru.com/tutorials/iax_conf.html IAX.conf tutorial]<br />
<br />
== H.323 Links ==<br />
General Information<br />
*[http://www.microsoft.com/windows/NetMeeting/Corp/reskit/Chapter11/default.asp Understanding H.323 by Microsoft]<br />
*[http://www.telecomspace.com/vop-h323.html H.323 Tutorial and resources]<br />
*[http://www.en.voipforo.com/H323/H323_objetives.php H.323 protocol overview]<br />
*[http://www.packetizer.com/voip/h323/papers/overview_of_h323.html High-level Overview]<br />
<br />
Papers<br />
*[http://www.eventhelix.com/RealtimeMantra/Telecom/h323_call_flow.pdf H.323 call flow covering H.225, Q.931, H.245, RTP and RTCP protocols] pdf<br />
*[http://www.radvision.com/Resources/WhitePapers H.323 White papers]<br />
*[http://www.packetizer.com/voip/h323/ H.323 Information Site]<br />
<br />
Projects<br />
*[http://ekiga.org/ Ekiga] (formerly [http://www.gnomemeeting.org/ GnomeMeeting])<br />
*[http://sourceforge.net/projects/openh323 OpenH323 project]<br />
*[http://xmeeting.sourceforge.net/ xmeeting for MacOS X]<br />
*[http://www.gnugk.org GNU Gatekeeper]<br />
<br />
<br />
Possible adapter-setup<br />
* [http://wiki.freeswitch.org/wiki/Main_Page Freeswitch] - An open source communications platform. FreeSWITCH™ is a library which ships with a small executable that loads the library, launches the core, and performs the various tasks that are defined by the modules. It can communicate with both H323 and IAX applications.<br />
<br />
<br />
Debugging<br />
* [http://www.astrecipes.net/index.php?from=1&q=AstRecipes/Displaying%20OH323%20calls Displaying info on OH323 calls]<br />
<br />
== Conference call links ==<br />
=== Video Switch links ===<br />
* [http://www.astricon.net/files/Neil_Stratford_EUR06.pdf Presentation on Videoswitch in Asterisk] - Quite a good overview of the possibilities of the VideoSwitch technology. e.g. Broadcast, conference with 1 speaker, etc.<br />
<br />
=== MeetMe links ===<br />
<br />
=== app_conference links ===<br />
* [http://www.mail-archive.com/asterisk-users@lists.digium.com/msg147465.html Asterisk-Users Meetme versus app_conference] - a short reply of someone who compared MeetMe with app_conference.<br />
* [http://www.sineapps.com/news.php?rssid=1474 Short install how-to for app_conference]<br />
<br />
== Codecs links ==<br />
<br />
=== Audio codecs ===<br />
* [http://en.wikipedia.org/wiki/G.711 Information about the G.711 audio codec]<br />
* [http://www.cse.iitd.ernet.in/~csd01431/minorp/CS760S.htm About audio codecs]<br />
* [http://kvin.lv/pub/Linux/Asterisk/ G723 and G729 codecs] - Read <tt>README</tt> and place the correct .so file in <tt>/usr/lib/asterisk/modules</tt><br />
<br />
=== Video codecs ===<br />
* [http://trace.eas.asu.edu/tools/H.263.pdf Information about he H.263 video codec]<br />
<br />
== Webcam Links ==<br />
<br />
* [https://help.ubuntu.com/community/Webcam webcams link]</div>Gijshttps://wiki.td-er.nl/index.php?title=Links&diff=2174Links2007-02-23T22:31:14Z<p>Gijs: /* Asterisk internal commands */</p>
<hr />
<div>== Trixbox links ==<br />
* [http://www.voip-info.org/wiki/ Largest Asterisk info site on the net]<br />
* [http://nerdvittles.com Great site with lots of trixbox add-ons and tips]<br />
* [http://asterisktutorials.com Video tutorials on trixbox and Asterisk]<br />
* [http://www.aussievoip.com Australian trixbox and Asterisk wiki site]<br />
* [http://www.sureteq.com/asterisk/ Install guides for trixbox and A2billing]<br />
* [http://dumbme.voipeye.com.au/trixbox/trixbox_without_tears.pdf Tutorial for Trixbox]<br />
* [http://www.elastix.org/ Elastix - a TrixBox fork]<br />
* [http://www.counterpath.com/docs/X-Lite3.0_UserGuide.pdf X-lite 3.0 userguide]<br />
* [http://www.counterpath.com/index.php?menu=download Download X-lite]<br />
* [http://support.counterpath.com/ CounterPath SIP Softphone Support] (a forum)<br />
* [http://www.xten.com/index.php?menu=Products&smenu=compare Comparison between X-lite en Eyebeam]<br />
<br />
== Asterisk links ==<br />
* [http://www.oreilly.com/catalog/asterisk/index.html Asterisk: The Future of Telephony] by O'Reilly. ([http://www.speakup.nl/en/opensource/asterisktfot/AsteriskTFOT.zip download]) ''O’Reilly has licensed the book under the creative commons license and as such, you are free to download and distribute it.''<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk Large collection of Asterisk-related links].<br />
* [http://gathering.tweakers.net/forum/list_messages/1093262 Het grote Asterisk topic op Tweakers]<br />
* [http://www.inaccessnetworks.com/ian/projects/asterisk-oh323/#section2 Asterisk OpenH323 module]<br />
* [http://www.trixbox.org/modules/newbb/viewtopic.php?topic_id=229&forum=6 H323 topic op Trixbox forum]<br />
* [http://www.oreillynet.com/etel/blog/2005/04/telecom_tips_building_your_own.html Telecom Tips] - Building Your Own Conference Bridge.<br />
* [http://www.asteriskdocs.org/modules/tinycontent/content/docbook/current/docs-html/book1.html The Hitchhiker's Guide to Asterisk]<br />
* [http://www.voip-info.org/wiki/view/Asterisk+-+dual+servers Connecting two (or more) Asterisk PBX's] - the principles explained.<br />
<br />
=== Changes between versions ===<br />
* [http://svn.digium.com/view/asterisk/branches/1.2/CHANGES Changes between 1.0 and 1.2]<br />
* [http://svn.digium.com/view/asterisk/branches/1.4/CHANGES Changes between 1.2 and 1.4]<br />
* [http://www.sineapps.com/news.php?rssid=1647 Detailed overview of differences between 1.4 and previous versions]<br />
<br />
=== Asterisk internal commands ===<br />
* [http://www.voip-info.org/wiki-Asterisk+cmd+Goto Goto()]<br />
* [http://www.voip-info.org/wiki-Asterisk+cmd+ChanIsAvail ChanIsAvail()]<br />
* [http://www.voip-info.org/wiki/view/Asterisk+cmd+Macro Macro()]<br />
* [http://www.voip-info.org/wiki/view/Asterisk+-+documentation+of+application+commands Full list of Asterisk application commands]<br />
<br />
== DUNDi links ==<br />
* [http://www.dundi.com/ DUNDi.com]<br />
* [http://www.voip-info.org/wiki-DUNDi Trixbox Configuration of DUNDi by voip-info.org]<br />
* [http://blog.thegoldfish.net/dundi-tutorial-for-asteriskhome/ Trixbox Configuration of DUNDi by thegoldfish.net] (Previous version of Trixbox)<br />
* [http://www.linuxplanet.com/linuxplanet/tutorials/6270/2/ Trixbox Configuration of DUNDi by Carla Schroder]<br />
* [http://taug.ca/talks/2006-02-22/DUNDi.TAUG.2006-02-22.ppt Trixbox Configuration of DUNDi by Leif Madsen, very useful presentation]<br />
* [http://kneh.xs4all.nl/tijmen/asterisk/Using%20DUNDi%20with%20Trixbox.pdf Trixbox Configuration of DUNDi by Tijmen van den Brink] Connecting 3 Trixboxes together, not using DUNDi discovery, but neighbours' MAC-adresses. ([http://www.trixbox.org/modules/newbb/viewtopic.php?topic_id=1834&forum=7 source])<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+config+dundi.conf Asterisk Configuration of DUNDi]<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+func+dundilookup Asterisk function: dundilookup]<br />
<br />
* [http://www.freepbx.org/trac/wiki/DUNDiModule Thoughts about a Dundi Module]<br />
* [http://www.voip-info.org/wiki/index.php?page=DUNDi+peering General DUNDi peering information]<br />
* [http://www.voip-info.org/wiki/view/Asterisk+DUNDi+Call+Routing Asterisk DUNDi call routing]<br />
<br />
== Bandwidth calculators ==<br />
* [http://www.terracall.com/FAQs_white_1.aspx#optimizesoftphone Whitepaper about bandwidth and compression selection for your softphone]<br />
* [http://www.bandcalc.com/ VoIP bandwidth calculator]<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+bandwidth+iax2 Bandwidth by Asterisk and Iax2]<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+bandwidth+iax2 Asterisk bandwidth Iax2]<br />
<br />
== IAX Links ==<br />
<br />
* [http://www.voip-info.org/wiki-IAX Description of IAX/IAX2]<br />
* [http://www.convergence.com.pk/iax2/trunked.html IAX trunk-statistics]<br />
* [http://www.voip-info.org/wiki/view/Asterisk+IAX+channels IAX channels]<br />
* [http://www.voip-info.org/wiki/view/Asterisk+channels Asterisk channels]<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+bandwidth+iax2 Asterisk bandwidth Iax2]<br />
* [http://www.asteriskguru.com/tutorials/iax_conf.html IAX.conf tutorial]<br />
<br />
== H.323 Links ==<br />
General Information<br />
*[http://www.microsoft.com/windows/NetMeeting/Corp/reskit/Chapter11/default.asp Understanding H.323 by Microsoft]<br />
*[http://www.telecomspace.com/vop-h323.html H.323 Tutorial and resources]<br />
*[http://www.en.voipforo.com/H323/H323_objetives.php H.323 protocol overview]<br />
*[http://www.packetizer.com/voip/h323/papers/overview_of_h323.html High-level Overview]<br />
<br />
Papers<br />
*[http://www.eventhelix.com/RealtimeMantra/Telecom/h323_call_flow.pdf H.323 call flow covering H.225, Q.931, H.245, RTP and RTCP protocols] pdf<br />
*[http://www.radvision.com/Resources/WhitePapers H.323 White papers]<br />
*[http://www.packetizer.com/voip/h323/ H.323 Information Site]<br />
<br />
Projects<br />
*[http://ekiga.org/ Ekiga] (formerly [http://www.gnomemeeting.org/ GnomeMeeting])<br />
*[http://sourceforge.net/projects/openh323 OpenH323 project]<br />
*[http://xmeeting.sourceforge.net/ xmeeting for MacOS X]<br />
*[http://www.gnugk.org GNU Gatekeeper]<br />
<br />
<br />
Possible adapter-setup<br />
* [http://wiki.freeswitch.org/wiki/Main_Page Freeswitch] - An open source communications platform. FreeSWITCH™ is a library which ships with a small executable that loads the library, launches the core, and performs the various tasks that are defined by the modules. It can communicate with both H323 and IAX applications.<br />
<br />
== Conference call links ==<br />
=== Video Switch links ===<br />
* [http://www.astricon.net/files/Neil_Stratford_EUR06.pdf Presentation on Videoswitch in Asterisk] - Quite a good overview of the possibilities of the VideoSwitch technology. e.g. Broadcast, conference with 1 speaker, etc.<br />
<br />
=== MeetMe links ===<br />
<br />
=== app_conference links ===<br />
* [http://www.mail-archive.com/asterisk-users@lists.digium.com/msg147465.html Asterisk-Users Meetme versus app_conference] - a short reply of someone who compared MeetMe with app_conference.<br />
* [http://www.sineapps.com/news.php?rssid=1474 Short install how-to for app_conference]<br />
<br />
== Codecs links ==<br />
<br />
=== Audio codecs ===<br />
* [http://en.wikipedia.org/wiki/G.711 Information about the G.711 audio codec]<br />
* [http://www.cse.iitd.ernet.in/~csd01431/minorp/CS760S.htm About audio codecs]<br />
* [http://kvin.lv/pub/Linux/Asterisk/ G723 and G729 codecs] - Read <tt>README</tt> and place the correct .so file in <tt>/usr/lib/asterisk/modules</tt><br />
<br />
=== Video codecs ===<br />
* [http://trace.eas.asu.edu/tools/H.263.pdf Information about he H.263 video codec]<br />
<br />
== Webcam Links ==<br />
<br />
* [https://help.ubuntu.com/community/Webcam webcams link]</div>Gijshttps://wiki.td-er.nl/index.php?title=Links&diff=2131Links2007-02-23T11:29:54Z<p>Gijs: /* Asterisk links */</p>
<hr />
<div>== Trixbox links ==<br />
* [http://www.voip-info.org/wiki/ Largest Asterisk info site on the net]<br />
* [http://nerdvittles.com Great site with lots of trixbox add-ons and tips]<br />
* [http://asterisktutorials.com Video tutorials on trixbox and Asterisk]<br />
* [http://www.aussievoip.com Australian trixbox and Asterisk wiki site]<br />
* [http://www.sureteq.com/asterisk/ Install guides for trixbox and A2billing]<br />
* [http://dumbme.voipeye.com.au/trixbox/trixbox_without_tears.pdf Tutorial for Trixbox]<br />
* [http://www.elastix.org/ Elastix - a TrixBox fork]<br />
* [http://www.counterpath.com/docs/X-Lite3.0_UserGuide.pdf X-lite 3.0 userguide]<br />
* [http://www.counterpath.com/index.php?menu=download Download X-lite]<br />
* [http://support.counterpath.com/ CounterPath SIP Softphone Support] (a forum)<br />
* [http://www.xten.com/index.php?menu=Products&smenu=compare Comparison between X-lite en Eyebeam]<br />
<br />
== Asterisk links ==<br />
* [http://www.oreilly.com/catalog/asterisk/index.html Asterisk: The Future of Telephony] by O'Reilly. ([http://www.speakup.nl/en/opensource/asterisktfot/AsteriskTFOT.zip download]) ''O’Reilly has licensed the book under the creative commons license and as such, you are free to download and distribute it.''<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk Large collection of Asterisk-related links].<br />
* [http://gathering.tweakers.net/forum/list_messages/1093262 Het grote Asterisk topic op Tweakers]<br />
* [http://www.inaccessnetworks.com/ian/projects/asterisk-oh323/#section2 Asterisk OpenH323 module]<br />
* [http://www.trixbox.org/modules/newbb/viewtopic.php?topic_id=229&forum=6 H323 topic op Trixbox forum]<br />
* [http://www.oreillynet.com/etel/blog/2005/04/telecom_tips_building_your_own.html Telecom Tips] - Building Your Own Conference Bridge.<br />
* [http://www.asteriskdocs.org/modules/tinycontent/content/docbook/current/docs-html/book1.html The Hitchhiker's Guide to Asterisk]<br />
* [http://www.voip-info.org/wiki/view/Asterisk+-+dual+servers Connecting two (or more) Asterisk PBX's] - the principles explained.<br />
<br />
=== Changes between versions ===<br />
* [http://svn.digium.com/view/asterisk/branches/1.2/CHANGES Changes between 1.0 and 1.2]<br />
* [http://svn.digium.com/view/asterisk/branches/1.4/CHANGES Changes between 1.2 and 1.4]<br />
* [http://www.sineapps.com/news.php?rssid=1647 Detailed overview of differences between 1.4 and previous versions]<br />
<br />
=== Asterisk internal commands ===<br />
* [http://www.voip-info.org/wiki-Asterisk+cmd+Goto Goto()]<br />
* [http://www.voip-info.org/wiki-Asterisk+cmd+ChanIsAvail ChanIsAvail()]<br />
* [http://www.voip-info.org/wiki/view/Asterisk+cmd+Macro Macro()]<br />
<br />
== DUNDi links ==<br />
* [http://www.dundi.com/ DUNDi.com]<br />
* [http://www.voip-info.org/wiki-DUNDi Trixbox Configuration of DUNDi by voip-info.org]<br />
* [http://blog.thegoldfish.net/dundi-tutorial-for-asteriskhome/ Trixbox Configuration of DUNDi by thegoldfish.net] (Previous version of Trixbox)<br />
* [http://www.linuxplanet.com/linuxplanet/tutorials/6270/2/ Trixbox Configuration of DUNDi by Carla Schroder]<br />
* [http://taug.ca/talks/2006-02-22/DUNDi.TAUG.2006-02-22.ppt Trixbox Configuration of DUNDi by Leif Madsen, very useful presentation]<br />
* [http://kneh.xs4all.nl/tijmen/asterisk/Using%20DUNDi%20with%20Trixbox.pdf Trixbox Configuration of DUNDi by Tijmen van den Brink] Connecting 3 Trixboxes together, not using DUNDi discovery, but neighbours' MAC-adresses. ([http://www.trixbox.org/modules/newbb/viewtopic.php?topic_id=1834&forum=7 source])<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+config+dundi.conf Asterisk Configuration of DUNDi]<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+func+dundilookup Asterisk function: dundilookup]<br />
<br />
* [http://www.freepbx.org/trac/wiki/DUNDiModule Thoughts about a Dundi Module]<br />
* [http://www.voip-info.org/wiki/index.php?page=DUNDi+peering General DUNDi peering information]<br />
* [http://www.voip-info.org/wiki/view/Asterisk+DUNDi+Call+Routing Asterisk DUNDi call routing]<br />
<br />
== Bandwidth calculators ==<br />
* [http://www.terracall.com/FAQs_white_1.aspx#optimizesoftphone Whitepaper about bandwidth and compression selection for your softphone]<br />
* [http://www.bandcalc.com/ VoIP bandwidth calculator]<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+bandwidth+iax2 Bandwidth by Asterisk and Iax2]<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+bandwidth+iax2 Asterisk bandwidth Iax2]<br />
<br />
== IAX Links ==<br />
<br />
* [http://www.voip-info.org/wiki-IAX Description of IAX/IAX2]<br />
* [http://www.convergence.com.pk/iax2/trunked.html IAX trunk-statistics]<br />
* [http://www.voip-info.org/wiki/view/Asterisk+IAX+channels IAX channels]<br />
* [http://www.voip-info.org/wiki/view/Asterisk+channels Asterisk channels]<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+bandwidth+iax2 Asterisk bandwidth Iax2]<br />
* [http://www.asteriskguru.com/tutorials/iax_conf.html IAX.conf tutorial]<br />
<br />
== H.323 Links ==<br />
General Information<br />
*[http://www.microsoft.com/windows/NetMeeting/Corp/reskit/Chapter11/default.asp Understanding H.323 by Microsoft]<br />
*[http://www.telecomspace.com/vop-h323.html H.323 Tutorial and resources]<br />
*[http://www.en.voipforo.com/H323/H323_objetives.php H.323 protocol overview]<br />
*[http://www.packetizer.com/voip/h323/papers/overview_of_h323.html High-level Overview]<br />
<br />
Papers<br />
*[http://www.eventhelix.com/RealtimeMantra/Telecom/h323_call_flow.pdf H.323 call flow covering H.225, Q.931, H.245, RTP and RTCP protocols] pdf<br />
*[http://www.radvision.com/Resources/WhitePapers H.323 White papers]<br />
*[http://www.packetizer.com/voip/h323/ H.323 Information Site]<br />
<br />
Projects<br />
*[http://ekiga.org/ Ekiga] (formerly [http://www.gnomemeeting.org/ GnomeMeeting])<br />
*[http://sourceforge.net/projects/openh323 OpenH323 project]<br />
*[http://xmeeting.sourceforge.net/ xmeeting for MacOS X]<br />
*[http://www.gnugk.org GNU Gatekeeper]<br />
<br />
<br />
Possible adapter-setup<br />
* [http://wiki.freeswitch.org/wiki/Main_Page Freeswitch] - An open source communications platform. FreeSWITCH™ is a library which ships with a small executable that loads the library, launches the core, and performs the various tasks that are defined by the modules. It can communicate with both H323 and IAX applications.<br />
<br />
== Conference call links ==<br />
=== Video Switch links ===<br />
* [http://www.astricon.net/files/Neil_Stratford_EUR06.pdf Presentation on Videoswitch in Asterisk] - Quite a good overview of the possibilities of the VideoSwitch technology. e.g. Broadcast, conference with 1 speaker, etc.<br />
<br />
=== MeetMe links ===<br />
<br />
=== app_conference links ===<br />
* [http://www.mail-archive.com/asterisk-users@lists.digium.com/msg147465.html Asterisk-Users Meetme versus app_conference] - a short reply of someone who compared MeetMe with app_conference.<br />
* [http://www.sineapps.com/news.php?rssid=1474 Short install how-to for app_conference]<br />
<br />
== Codecs links ==<br />
<br />
=== Audio codecs ===<br />
* [http://en.wikipedia.org/wiki/G.711 Information about the G.711 audio codec]<br />
* [http://www.cse.iitd.ernet.in/~csd01431/minorp/CS760S.htm About audio codecs]<br />
* [http://kvin.lv/pub/Linux/Asterisk/ G723 and G729 codecs] - Read <tt>README</tt> and place the correct .so file in <tt>/usr/lib/asterisk/modules</tt><br />
<br />
=== Video codecs ===<br />
* [http://trace.eas.asu.edu/tools/H.263.pdf Information about he H.263 video codec]<br />
<br />
== Webcam Links ==<br />
<br />
* [https://help.ubuntu.com/community/Webcam webcams link]</div>Gijshttps://wiki.td-er.nl/index.php?title=Traffic_measurements_Video&diff=2125Traffic measurements Video2007-02-23T11:00:34Z<p>Gijs: /* Results */</p>
<hr />
<div>= Voice and video analysis =<br />
<br />
== Experimental Setup ==<br />
<br />
[[image:Schematic overview asterisks and sip-phones.gif|Schematic overview of the test-setup. The colors in the sketch match the colors in the following Ethereal-screenshots]]<br />
<br />
In words the configuration is the following: SIP phone #1 is connected to Asterisk #1 and SIP phone #2 is connected to Asterisk #2. The SIP phones are not directly connected to each other but can communicate with each other because Asterisk #1 is directly connected to Asterisk #2 (and vica versa).<br />
<br />
Arrows represent possible data traffic that will be measured (see results).<br />
<br />
Codecs used: g711u for audio and H263(1998) for video<br />
<br />
== Results ==<br />
<br />
In the screenshot below, the following holds:<br />
* @4 sec: Video was turned on<br />
* @14 sec: Video was set to black (connection lost with DVdriver)<br />
* @20 sec: Video showed moving pictures again.<br />
<br />
[[Image:ethereal_graph_voice_and_one-way-video.png]]<br />
<br />
In the screenshot below, the conversation included audio and video until t = 35s. After t = 35s, the traffic is audio-only.<br />
[[Image:ethereal_graph_voice_and_one-way-video2.png]]<br />
<br />
Legenda:<br />
* '''Black''': traffic from and to Trixbox #1 <br />
* '''Red''': traffic between the 2 Windows machines running X-lite<br />
* '''Green''': traffic between laptop #1 and its Asterisk<br />
* '''Blue''': traffic between the two Asterisk PBX's<br />
* '''Pink''': traffic between Windows machine #1 and its Asterisk<br />
<br />
As we see from the graph shown above, the used bandwidth for audio-only is approximately 22500 bytes/second while the used bandwidth for audio and voice is approximately 40000 bytes/second.<br />
For the audio codec the 22500 bytes/second corresponds to 22500*8/1000 = 180 kbps. Because this is traffic in two directions, (180/2 =) 90 kbps is the traffic in one direction. The expected Nominal Ethernet Bandwidth (one direction), also called NEB is 87.2 kbps which corresponds reasonably with the measured 90 kbps. The g711u has a transfer rate of 64 kbps and the difference between the NEB and this transfer rate (~ 90-64=16 kbps) is packet overhead.<br />
<br />
The video uses approximately (40000-22500)*8/1000 = 140 kbps. In one direction, the NEB of the H263(1998) is 70 kbps.<br />
<br />
== Conclusions ==<br />
<br />
* First of all, there can be seen from the screenshots shown above that the red line can be represented by (y=0). Because the red line represents the traffic between the 2 Windows machines running X-lite we can conclude that there is no direct traffic between the X-Lites.<br />
* Secondly, there can be seen from the second screenshot that the black, green, blue and pink line represent all the same amount of data traffic. From this there can be concluded that the traffic between the Trixboxes is the same as the triffic to and from the Trixboxes, i.e. the traffic is not limited between the Trixboxes.<br />
* Conclusie over codec gebruikt/wel of niet overeenkomen met verwachte bandwidth usage.<br />
* The NEB of the g711u (87.2 Kpbs) corresponds very well to the measured voice traffic in one direction (90 Kpbs) between the Sip-phones and their Trixboxes and the Trixboxes mutually.<br />
* The NEB of the H263(1998) is found to be 70 Kpbs.<br />
<br />
= Differences between voice and video =<br />
<br />
== Experimental Setup ==<br />
<br />
Two SIP phones are connected to the same Asterisk PBX Trixbox. One SIP phone is equiped with a camera while the other is not. The bandwidth usage is measured between the Trixbox and the SIP phones connected to it.<br />
<br />
== Results ==<br />
<br />
Data is collected using WireShark and the data is stored here: ([http://thales.td-er.nl/EtherealDumps/Traffic%20between%202%20SIP%20phones%20with%201%20PBX%20and%201%20camera.rar captured Ethereal data])<br />
<br />
[[image:ethereal_graph_difference_voice and video.png|Ethereal graph showing the differences in traffic between audio and video (resp. g711u and H263-1998 codec). Black: from SIP-phone #1 to PBX. Blue: from SIP-phone #2 to PBX <br />
Pink: all traffic between SIP-phone #1 and the PBX ]]<br />
<br />
'''Legenda:'''<br />
* '''Black''' shows audio & video from ''SIP-phone #1'' to the PBX (video starting at the 10<sup>th</sup> second)<br />
* '''Blue''' shows audio-only from ''SIP-phone #2'' to the PBX<br />
* '''Pink''' shows all traffic between ''SIP-phone #1'' and the PBX (both directions)<br />
<br />
<br />
* The debug-screen [[image:X-lite debug-info.png|right|315px|X-lite debug-screen. Numbers in this screenshot do not reflect the situation sketched.]] of X-lite (Ctrl + F9) told us the SIP-phone assumed a total available bandwith of 256/256 kbps. This was filled with 64 kbps for speech (protocol g711u) and 131 kbps for video (protocol H263-1998).<br />
<br />
* When looking at the speech traffic:<br />
** 50 packets/sec (measured with Ethereal) are sent which corresponds to 214 Bytes/packet (measured with Ethereal). This makes a total of (50*214=) 10,7 kBps.<br />
** The g711u codec uses a bitrate of 64 kpbs which is 8 kBps. This traffic is sent with 50 packets/second, so there is 160 bytes of audio-data per packet. <br />
** [[Ethernet payload datarates|UDP-packet-header: 28 Bytes]]<br />
<br />
* The Measured IAX-overhead is 214 - 28 - 160 = 26 Bytes/packet. Because 50 packets are send per second, 1300 Bytes/sec is the IAX overhead (10k4 bps).<br />
<br />
== Conclusions ==<br />
<br />
* Hier iets over verwachte bandwitdh aangaande codec.</div>Gijshttps://wiki.td-er.nl/index.php?title=Traffic_measurements_Video&diff=2123Traffic measurements Video2007-02-23T10:53:45Z<p>Gijs: /* Results */</p>
<hr />
<div>= Voice and video analysis =<br />
<br />
== Experimental Setup ==<br />
<br />
[[image:Schematic overview asterisks and sip-phones.gif|Schematic overview of the test-setup. The colors in the sketch match the colors in the following Ethereal-screenshots]]<br />
<br />
In words the configuration is the following: SIP phone #1 is connected to Asterisk #1 and SIP phone #2 is connected to Asterisk #2. The SIP phones are not directly connected to each other but can communicate with each other because Asterisk #1 is directly connected to Asterisk #2 (and vica versa).<br />
<br />
Arrows represent possible data traffic that will be measured (see results).<br />
<br />
Codecs used: g711u for audio and H263(1998) for video<br />
<br />
== Results ==<br />
<br />
In the screenshot below, the following holds:<br />
* @4 sec: Video was turned on<br />
* @14 sec: Video was set to black (connection lost with DVdriver)<br />
* @20 sec: Video showed moving pictures again.<br />
<br />
[[Image:ethereal_graph_voice_and_one-way-video.png]]<br />
<br />
In the screenshot below, the conversation included audio and video until t = 35s. After t = 35s, the traffic is audio-only.<br />
[[Image:ethereal_graph_voice_and_one-way-video2.png]]<br />
<br />
Legenda:<br />
* '''Black''': traffic from and to Trixbox #1 <br />
* '''Red''': traffic between the 2 Windows machines running X-lite<br />
* '''Green''': traffic between laptop #1 and its Asterisk<br />
* '''Blue''': traffic between the two Asterisk PBX's<br />
* '''Pink''': traffic between Windows machine #1 and its Asterisk<br />
<br />
As we see from the graph shown above, the used bandwidth for audio-only is approximately 22500 bytes/second while the used bandwidth for audio and voice is approximately 40000 bytes/second.<br />
For the audio codec the 22500 bytes/second corresponds to 22500*8/1000 = 180 kbps. Because this is traffic in two directions, (180/2 =) 90 kbps is the traffic in one direction. The expected Nominal Ethernet Bandwidth (one direction), also called NEB is 87.2 kbps which corresponds reasonably with the measured 90 kbps. The g711u has a transfer rate of 64 kbps and the difference between the NEB and this transfer rate (~ 90-64=16 kbps) is packet overhead.<br />
<br />
The video uses approximately (40000-22500)*8/1000 = 140 kbps. In one direction, the NEB of the H263(1998) is 70 kbps.<br />
<br />
== Conclusions ==<br />
<br />
* First of all, there can be seen from the screenshots shown above that the red line can be represented by (y=0). Because the red line represents the traffic between the 2 Windows machines running X-lite we can conclude that there is no direct traffic between the X-Lites.<br />
* Secondly, there can be seen from the second screenshot that the black, green, blue and pink line represent all the same amount of data traffic. From this there can be concluded that the traffic between the Trixboxes is the same as the triffic to and from the Trixboxes, i.e. the traffic is not limited between the Trixboxes.<br />
* Conclusie over codec gebruikt/wel of niet overeenkomen met verwachte bandwidth usage.<br />
* The NEB of the g711u (87.2 Kpbs) corresponds very well to the measured voice traffic in one direction (90 Kpbs) between the Sip-phones and their Trixboxes and the Trixboxes mutually.<br />
* The NEB of the H263(1998) is found to be 70 Kpbs.<br />
<br />
= Differences between voice and video =<br />
<br />
== Experimental Setup ==<br />
<br />
Two SIP phones are connected to the same Asterisk PBX Trixbox. One SIP phone is equiped with a camera while the other is not. The bandwidth usage is measured between the Trixbox and the SIP phones connected to it.<br />
<br />
== Results ==<br />
<br />
Data is collected using WireShark and the data is stored here: ([http://thales.td-er.nl/EtherealDumps/Traffic%20between%202%20SIP%20phones%20with%201%20PBX%20and%201%20camera.rar captured Ethereal data])<br />
<br />
[[image:ethereal_graph_difference_voice and video.png|Ethereal graph showing the differences in traffic between audio and video (resp. g711u and H263-1998 codec). Black: from SIP-phone #1 to PBX. Blue: from SIP-phone #2 to PBX <br />
Pink: all traffic between SIP-phone #1 and the PBX ]]<br />
<br />
'''Legenda:'''<br />
* '''Black''' shows audio & video from ''SIP-phone #1'' to the PBX (video starting at the 10<sup>th</sup> second)<br />
* '''Blue''' shows audio-only from ''SIP-phone #2'' to the PBX<br />
* '''Pink''' shows all traffic between ''SIP-phone #1'' and the PBX (both directions)<br />
<br />
<br />
* The debug-screen [[image:X-lite debug-info.png|right|315px|X-lite debug-screen]] of X-lite (Ctrl + F9) told us the SIP-phone assumed a total available bandwith of 256/256 kbps. This was filled with 64 kbps for speech (protocol g711u) and 131 kbps for video (protocol H263-1998).<br />
<br />
* When looking at the speech traffic:<br />
** 50 packets/sec (measured with Ethereal) are sent which corresponds to 214 Bytes/packet (measured with Ethereal). This makes a total of (50*214=) 10,7 kBps.<br />
** The g711u codec uses a bitrate of 64 kpbs which is 8 kBps. This traffic is sent with 50 packets/second, so there is 160 bytes of audio-data per packet. <br />
** [[Ethernet payload datarates|UDP-packet-header: 28 Bytes]]<br />
<br />
* Measured IAX-overhead: (the g711u codec uses a CBR of 64kbps) 214 - 28 - 160 = 26 Bytes/packet. Thus 1300 Bytes/sec IAX overhead (10k4 bps).<br />
<br />
== Conclusions ==<br />
<br />
* Hier iets over verwachte bandwitdh aangaande codec.</div>Gijshttps://wiki.td-er.nl/index.php?title=Links&diff=2102Links2007-02-23T09:13:36Z<p>Gijs: /* Asterisk links */</p>
<hr />
<div>== Trixbox links ==<br />
* [http://www.voip-info.org/wiki/ Largest Asterisk info site on the net]<br />
* [http://nerdvittles.com Great site with lots of trixbox add-ons and tips]<br />
* [http://asterisktutorials.com Video tutorials on trixbox and Asterisk]<br />
* [http://www.aussievoip.com Australian trixbox and Asterisk wiki site]<br />
* [http://www.sureteq.com/asterisk/ Install guides for trixbox and A2billing]<br />
* [http://dumbme.voipeye.com.au/trixbox/trixbox_without_tears.pdf Tutorial for Trixbox]<br />
* [http://www.elastix.org/ Elastix - a TrixBox fork]<br />
* [http://www.counterpath.com/docs/X-Lite3.0_UserGuide.pdf X-lite 3.0 userguide]<br />
* [http://www.counterpath.com/index.php?menu=download Download X-lite]<br />
* [http://support.counterpath.com/ CounterPath SIP Softphone Support] (a forum)<br />
* [http://www.xten.com/index.php?menu=Products&smenu=compare Comparison between X-lite en Eyebeam]<br />
<br />
== Asterisk links ==<br />
* [http://www.oreilly.com/catalog/asterisk/index.html Asterisk: The Future of Telephony] by O'Reilly. ([http://www.speakup.nl/en/opensource/asterisktfot/AsteriskTFOT.zip download]) ''O’Reilly has licensed the book under the creative commons license and as such, you are free to download and distribute it.''<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk Large collection of Asterisk-related links].<br />
* [http://gathering.tweakers.net/forum/list_messages/1093262 Het grote Asterisk topic op Tweakers]<br />
* [http://www.inaccessnetworks.com/ian/projects/asterisk-oh323/#section2 Asterisk OpenH323 module]<br />
* [http://www.trixbox.org/modules/newbb/viewtopic.php?topic_id=229&forum=6 H323 topic op Trixbox forum]<br />
* [http://www.oreillynet.com/etel/blog/2005/04/telecom_tips_building_your_own.html Telecom Tips] - Building Your Own Conference Bridge.<br />
* [http://www.asteriskdocs.org/modules/tinycontent/content/docbook/current/docs-html/book1.html The Hitchhiker's Guide to Asterisk]<br />
<br />
=== Changes between versions ===<br />
* [http://svn.digium.com/view/asterisk/branches/1.2/CHANGES Changes between 1.0 and 1.2]<br />
* [http://svn.digium.com/view/asterisk/branches/1.4/CHANGES Changes between 1.2 and 1.4]<br />
* [http://www.sineapps.com/news.php?rssid=1647 Detailed overview of differences between 1.4 and previous versions]<br />
<br />
=== Asterisk internal commands ===<br />
* [http://www.voip-info.org/wiki-Asterisk+cmd+Goto Goto()]<br />
* [http://www.voip-info.org/wiki-Asterisk+cmd+ChanIsAvail ChanIsAvail()]<br />
* [http://www.voip-info.org/wiki/view/Asterisk+cmd+Macro Macro()]<br />
<br />
== DUNDi links ==<br />
* [http://www.dundi.com/ DUNDi.com]<br />
* [http://www.voip-info.org/wiki-DUNDi Trixbox Configuration of DUNDi by voip-info.org]<br />
* [http://blog.thegoldfish.net/dundi-tutorial-for-asteriskhome/ Trixbox Configuration of DUNDi by thegoldfish.net] (Previous version of Trixbox)<br />
* [http://www.linuxplanet.com/linuxplanet/tutorials/6270/2/ Trixbox Configuration of DUNDi by Carla Schroder]<br />
* [http://taug.ca/talks/2006-02-22/DUNDi.TAUG.2006-02-22.ppt Trixbox Configuration of DUNDi by Leif Madsen, very useful presentation]<br />
* [http://kneh.xs4all.nl/tijmen/asterisk/Using%20DUNDi%20with%20Trixbox.pdf Trixbox Configuration of DUNDi by Tijmen van den Brink] Connecting 3 Trixboxes together, not using DUNDi discovery, but neighbours' MAC-adresses. ([http://www.trixbox.org/modules/newbb/viewtopic.php?topic_id=1834&forum=7 source])<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+config+dundi.conf Asterisk Configuration of DUNDi]<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+func+dundilookup Asterisk function: dundilookup]<br />
<br />
* [http://www.freepbx.org/trac/wiki/DUNDiModule Thoughts about a Dundi Module]<br />
* [http://www.voip-info.org/wiki/index.php?page=DUNDi+peering General DUNDi peering information]<br />
* [http://www.voip-info.org/wiki/view/Asterisk+DUNDi+Call+Routing Asterisk DUNDi call routing]<br />
<br />
== Bandwidth calculators ==<br />
* [http://www.terracall.com/FAQs_white_1.aspx#optimizesoftphone Whitepaper about bandwidth and compression selection for your softphone]<br />
* [http://www.bandcalc.com/ VoIP bandwidth calculator]<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+bandwidth+iax2 Bandwidth by Asterisk and Iax2]<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+bandwidth+iax2 Asterisk bandwidth Iax2]<br />
<br />
== IAX Links ==<br />
<br />
* [http://www.voip-info.org/wiki-IAX Description of IAX/IAX2]<br />
* [http://www.convergence.com.pk/iax2/trunked.html IAX trunk-statistics]<br />
* [http://www.voip-info.org/wiki/view/Asterisk+IAX+channels IAX channels]<br />
* [http://www.voip-info.org/wiki/view/Asterisk+channels Asterisk channels]<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+bandwidth+iax2 Asterisk bandwidth Iax2]<br />
* [http://www.asteriskguru.com/tutorials/iax_conf.html IAX.conf tutorial]<br />
<br />
== H.323 Links ==<br />
General Information<br />
*[http://www.microsoft.com/windows/NetMeeting/Corp/reskit/Chapter11/default.asp Understanding H.323 by Microsoft]<br />
*[http://www.telecomspace.com/vop-h323.html H.323 Tutorial and resources]<br />
*[http://www.en.voipforo.com/H323/H323_objetives.php H.323 protocol overview]<br />
*[http://www.packetizer.com/voip/h323/papers/overview_of_h323.html High-level Overview]<br />
<br />
Papers<br />
*[http://www.eventhelix.com/RealtimeMantra/Telecom/h323_call_flow.pdf H.323 call flow covering H.225, Q.931, H.245, RTP and RTCP protocols] pdf<br />
*[http://www.radvision.com/Resources/WhitePapers H.323 White papers]<br />
*[http://www.packetizer.com/voip/h323/ H.323 Information Site]<br />
<br />
Projects<br />
*[http://ekiga.org/ Ekiga] (formerly [http://www.gnomemeeting.org/ GnomeMeeting])<br />
*[http://sourceforge.net/projects/openh323 OpenH323 project]<br />
*[http://xmeeting.sourceforge.net/ xmeeting for MacOS X]<br />
*[http://www.gnugk.org GNU Gatekeeper]<br />
<br />
<br />
Possible adapter-setup<br />
* [http://wiki.freeswitch.org/wiki/Main_Page Freeswitch] - An open source communications platform. FreeSWITCH™ is a library which ships with a small executable that loads the library, launches the core, and performs the various tasks that are defined by the modules. It can communicate with both H323 and IAX applications.<br />
<br />
== Conference call links ==<br />
=== Video Switch links ===<br />
* [http://www.astricon.net/files/Neil_Stratford_EUR06.pdf Presentation on Videoswitch in Asterisk] - Quite a good overview of the possibilities of the VideoSwitch technology. e.g. Broadcast, conference with 1 speaker, etc.<br />
<br />
=== MeetMe links ===<br />
<br />
=== app_conference links ===<br />
* [http://www.mail-archive.com/asterisk-users@lists.digium.com/msg147465.html Asterisk-Users Meetme versus app_conference] - a short reply of someone who compared MeetMe with app_conference.<br />
* [http://www.sineapps.com/news.php?rssid=1474 Short install how-to for app_conference]<br />
<br />
== Codecs links ==<br />
<br />
=== Audio codecs ===<br />
* [http://en.wikipedia.org/wiki/G.711 Information about the G.711 audio codec]<br />
* [http://www.cse.iitd.ernet.in/~csd01431/minorp/CS760S.htm About audio codecs]<br />
* [http://kvin.lv/pub/Linux/Asterisk/ G723 and G729 codecs] - Read <tt>README</tt> and place the correct .so file in <tt>/usr/lib/asterisk/modules</tt><br />
<br />
=== Video codecs ===<br />
* [http://trace.eas.asu.edu/tools/H.263.pdf Information about he H.263 video codec]<br />
<br />
== Webcam Links ==<br />
<br />
* [https://help.ubuntu.com/community/Webcam webcams link]</div>Gijshttps://wiki.td-er.nl/index.php?title=Trixbox&diff=2082Trixbox2007-02-20T19:49:29Z<p>Gijs: </p>
<hr />
<div>[http://www.trixbox.org/ Tribox homepage]<br />
<br />
[[Links#Trixbox_links|Trixbox related links]]<br />
<br />
== Running Trixbox in VMware on Windows ==<br />
[[Image:Screenshot VMware Trixbox.png|right|369px]]<br />
<br />
Download:<br />
* [http://www.trixbox.org/modules/smartsection/item.php?itemid=50 Tribox VMware image] ([http://mesh.dl.sourceforge.net/sourceforge/asteriskathome/trixbox-2.0-vmware.zip direct link])<br />
[http://www.vmware.com/download/player/ VMware player] (free)<br />
* [http://belnet.dl.sourceforge.net/sourceforge/asteriskathome/trixbox-2.0.iso ISO CD-image] (Direct link)<br />
<br />
=== Things to know ===<br />
<br />
*** document the startup of VMware ***<br />
<br />
Once the Trixbox Linux is up and running, the following things hold:<br />
<br />
* The default root-password is "password".<br />
* Entering the VMware console is done by clicking on it. Leaving is done by pressing CTRL + Alt at the same time.<br />
* When opening the VMware configuration-file in VMware player, you probably get some warnings about the location of your CDrom drive. This can be ignored. (no CDrom is needed)<br />
* Using the latest version of VMware player, the hardware-detection will detect a change of network card. Please select "Keep configuration" and in the next screen enter the right IP-configuration (needed only once)<br />
* Each instance of VMware player running this version of Trixbox will take on average about 250 MB of RAM.<br />
* Each VMware image of this version of Trixbox needs about 1.66 GiB of hard disk space. This can increase up to a max. of 7.3 GiB (max size of virtual filesystem + 256 MiB VMEM-file) The VMware-images can be compressed for transport to about 570 - 600 MB<br />
* The GUI can be used to configure TrixBox. Remember to enable the necessary modules (at least '''core'''). This can be done through '''FreePBX -> Tools -> Module Administration'''. <br />
* Extensions can now be added under '''FreePBX -> Setup'''<br />
<br />
=== Editors ===<br />
<br />
The config files of Asterisk are located in /etc/asterisk/<br />
<br />
These can be edited through the GUI (in administrator mode) under '''Asterisk -> ConfigEdit'''. <br />
<br />
If you don't want or can't do it online:<br />
Editing those files with the installed editor vi, is rather tedious. Therefore we installed Emacs to do the editing.<br />
Since Trixbox is based on CentOS, it is possible to use the CentOS RPM's to install Emacs.<br />
<br />
The 2 RPM's needed for Emacs are located at the following URL's:<br />
<br />
ftp://ftp.nluug.nl/pub/os/Linux/distr/CentOS/4.4/os/i386/CentOS/RPMS/emacs-common-21.3-19.EL.4.i386.rpm<br />
ftp://ftp.nluug.nl/pub/os/Linux/distr/CentOS/4.4/os/i386/CentOS/RPMS/emacs-nox-21.3-19.EL.4.i386.rpm<br />
<br />
Using the program wget, it is possible to download these. After downloading, the RPM's can be installed with "''rpm -i''".<br />
We also created some smaller URL's, which is easier to type ;)<br />
<br />
mkdir install<br />
cd install<br />
wget http://turl.nl/99<br />
wget http://turl.nl/100<br />
rpm -i emacs-common-21.3-19.EL.4.i386.rpm<br />
rpm -i emacs-nox-21.3-19.EL.4.i386.rpm<br />
<br />
The name of the emacs-executable is "emacs-nox"<br />
<br />
Another possibility is simply to use the YUM package manager:<br />
<br />
[root@asterisk1 ~]# yum install emacs-nox<br />
<br />
=== Connecting with the Trixbox-shell ===<br />
It is possible to use the Trixbox shell via VMware (player), but this has one mayor disadvantage. You can't use cut 'n paste.<br />
However, it is also possible to interface over a SSH connection, using e.g. [http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Putty].<br />
The IP-adress of the Trixbox installation is given at the login (using VMware).<br />
<br />
To log in, the standard root-password is "password".<br />
<br />
== Running Trixbox in VMware on Linux ==<br />
<br />
In the following we assume that the VMware image of TrixBox has already been downloaded to some directory, for instance<br />
<br />
/home/scratch<br />
<br />
First of all, VMware needs to be launched from the command-line<br />
<br />
csg9101@wingtip114 [~/bin] : vmware &<br />
<br />
After a while VMware will be up and running. Then the next step is to select ''open an existing Virtual Machine'':<br />
<br />
[[Image:VMware-VM selection.png]]<br />
<br />
At this point, the CentOS TrixBox system will boot. Eventually a Linux login shell will appear.<br />
<br />
=== Networking - NAT ===<br />
<br />
TrixBox starts up with a default network configuration based on IPv6; this won't work in most cases. To remedy this it is necessary to log in on the TrixBox as root and to configure the network subsystem.<br />
<br />
This configuration is two-fold: on the VMware side it is necessary to set up network routing, as documented at [http://www.vmware.com/support/ws4/doc/network_configure_ws.html network_configure_ws]. <br />
<br />
In our case, the present network is tightly configured by DHCP in such a way that using an IP in the same range as the machine's IP is not an option and other IP's are ignored. Therefore Network bridging isn't an option; we use NAT instead. <br />
<br />
Hereby we have to set up NAT conforming to the parameters which are set up in the following VMware config file (/etc/vmware/vmnet8/nat/nat.conf.)<br />
<br />
# Linux NAT configuration file<br />
[host]<br />
# NAT gateway address <br />
ip = 192.168.5.2<br />
netmask = 255.255.255.0<br />
# or ip = 192.168.5.2/24<br />
<br />
# enable configuration; disabled by default for security reasons<br />
#configport = 33445<br />
<br />
# VMnet device if not specified on command line<br />
device = /dev/vmnet8<br />
<br />
# Allow PORT/EPRT FTP commands (they need incoming TCP stream...)<br />
activeFTP = 1<br />
<br />
# Allows the source to have any OUI. Turn this one if you change the OUI<br />
# in the MAC address of your virtual machines.<br />
#allowAnyOUI = 1<br />
<br />
[udp]<br />
# Timeout in seconds, 0 = no timeout, default = 60; real value might<br />
# be up to 100% longer<br />
timeout = 60<br />
<br />
[incomingtcp]<br />
# Use these with care - anyone can enter into your VM through these...<br />
<br />
# FTP (both active and passive FTP is always enabled)<br />
# ftp localhost 8887<br />
#8887 = 192.168.5.128:21<br />
<br />
# WEB (make sure that if you are using named webhosting, names point to<br />
# your host, not to guest... And if you are forwarding port other<br />
# than 80 make sure that your server copes with mismatched port <br />
# number in Host: header)<br />
# lynx http://localhost:8888<br />
#8888 = 192.168.5.128:80<br />
<br />
# SSH<br />
# ssh -p 8889 root@localhost<br />
#8889 = 192.168.5.128:22<br />
<br />
[incomingudp]<br />
# UDP port forwarding example<br />
#6000 = 192.168.5.128:6001<br />
<br />
On the TrixBox side the networking infrastructure should happen according to [http://www.vmware.com/support/gsx3/doc/network_nat_advanced_gsx.html network_nat_advanced_gsx]; the new network parameters can be applied through the command<br />
netconfig<br />
For further details see [http://www.sureteq.com/asterisk/trixboxv1.2.htm#3.1_-_Network_configuration_ TrixBox Network configuration].<br />
<br />
As far as we know, such NAT configuration does '''not''' ''forward'' any connection to the TrixBox running within VMware, therefore at this moment this solution doesn't allow any incoming connection.<br />
<br />
=== NAT - Update (29/01/2007) ===<br />
<br />
Further investigation made us discover a quite complex situation.<br />
<br />
First of all, in the Linux installation VMware creates a couple of devices, namely<br />
<br />
eth0 Link encap:Ethernet HWaddr 00:0E:7F:FB:0A:25<br />
inet addr:129.125.21.161 Bcast:129.125.21.255 Mask:255.255.255.0<br />
inet6 addr: fe80::20e:7fff:fefb:a25/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:219478 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:172723 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000<br />
RX bytes:94422484 (90.0 MiB) TX bytes:54367351 (51.8 MiB)<br />
Interrupt:16<br />
<br />
lo Link encap:Local Loopback<br />
inet addr:127.0.0.1 Mask:255.0.0.0<br />
inet6 addr: ::1/128 Scope:Host<br />
UP LOOPBACK RUNNING MTU:16436 Metric:1<br />
RX packets:465 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:465 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:0<br />
RX bytes:47236 (46.1 KiB) TX bytes:47236 (46.1 KiB)<br />
<br />
vmnet1 Link encap:Ethernet HWaddr 00:50:56:C0:00:01<br />
inet addr:192.168.7.1 Bcast:192.168.7.255 Mask:255.255.255.0<br />
inet6 addr: fe80::250:56ff:fec0:1/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:0 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000<br />
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)<br />
<br />
vmnet8 Link encap:Ethernet HWaddr 00:50:56:C0:00:08<br />
inet addr:192.168.5.1 Bcast:192.168.5.255 Mask:255.255.255.0<br />
inet6 addr: fe80::250:56ff:fec0:8/64 Scope:Link<br />
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1<br />
RX packets:0 errors:0 dropped:0 overruns:0 frame:0<br />
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0<br />
collisions:0 txqueuelen:1000<br />
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)<br />
<br />
<br />
NAT translation is merely performed on the ip address where interface [[vmnet8]] is listening to. For some reason even a manipulated VMware configuration file (/etc/vmware/vmnet8/nat/nat.conf) doesn't realize the port-forwards which are needed to reach the TrixBox virtual machine; the used configuration is<br />
<br />
csg9101@wingtip114 [~] : cat /home/scratch/trixbox\ 2.0/nat.conf<br />
# Linux NAT configuration file<br />
[host]<br />
# NAT gateway address<br />
ip = 192.168.5.2<br />
netmask = 255.255.255.0<br />
# or ip = 192.168.5.2/24<br />
<br />
# enable configuration; disabled by default for security reasons<br />
#configport = 33445<br />
<br />
# VMnet device if not specified on command line<br />
device = /dev/vmnet8<br />
<br />
# Allow PORT/EPRT FTP commands (they need incoming TCP stream...)<br />
activeFTP = 1<br />
<br />
# Allows the source to have any OUI. Turn this one if you change the OUI<br />
# in the MAC address of your virtual machines.<br />
#allowAnyOUI = 1<br />
<br />
[udp]<br />
# Timeout in seconds, 0 = no timeout, default = 60; real value might<br />
# be up to 100% longer<br />
timeout = 60<br />
<br />
[incomingtcp]<br />
# Use these with care - anyone can enter into your VM through these...<br />
<br />
# FTP (both active and passive FTP is always enabled)<br />
# ftp localhost 8887<br />
8887 = 192.168.5.128:21<br />
<br />
# WEB (make sure that if you are using named webhosting, names point to<br />
# your host, not to guest... And if you are forwarding port other<br />
# than 80 make sure that your server copes with mismatched port<br />
# number in Host: header)<br />
# lynx http://localhost:8888<br />
8888 = 192.168.5.128:80<br />
<br />
# SSH<br />
# ssh -p 8889 root@localhost<br />
8889 = 192.168.5.128:22<br />
<br />
[incomingudp]<br />
# UDP port forwarding example<br />
#6000 = 192.168.5.128:6001<br />
<br />
# IAX1 - port forward for the obsolete IAX ver 1 protocol<br />
# essential for trixbox/asterisk<br />
4569 = 192.168.5.128:4569<br />
<br />
# IAX2 - port forward for the IAX ver 2 protocol<br />
# essential for trixbox/asterisk<br />
5036 = 192.168.5.128:5036<br />
<br />
In this case the virtual machine has the ip 192.168.5.128 and a series op network port are mapped to it; unfortunately it doesn't seem to work:<br />
* from the outside world it is not possible to open any connection towards the TrixBox, i.e. not by usig the real machine's ip and port 8888 nor using the "VMware router" at adress 192.168.5.2 and port 8888<br />
* from the local Linux OS it is possible to connect to the TrixBox through its ip; this is not sufficient as it's not possible to connect from ''another'' machine.<br />
<br />
=== Network Bridging ===<br />
<br />
The other main way to provide network connectivity to the virtual TrixBox is to set up VMware using ''Bridging''.<br />
According to the VMware documentation, this should happen by selecting Bridging among the network interface properties in the VMware System Console. Moreover, the virtual OS should ''copy'' the host OS's ip. This of course generates a ip address conflict, hampering the virtual system's connectivity.<br />
The official workaround is to allow duplicate ip's, but unfortunately the documentation doesn't provide a clear way to configure this and no particular option is provided by the VMware System Console's UI.<br />
<br />
A solution is to assign a new free ip address to the virtual TrixBox (ofcourse, this needs to be done in ''agreement'' with the network administrator/policy ('''!''') ). In this case, the virtual TrixBox can also play as ''gateway'' for itself.<br />
This enables full communication to the Virtual TrixBox from and to the host machine '''and''' the outside world.<br />
<br />
This is the used network configuration file:<br />
<br />
[root@asterisk1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0<br />
DEVICE=eth0<br />
ONBOOT=yes<br />
BOOTPROTO=static<br />
IPADDR=129.125.21.240<br />
NETMASK=255.255.0.0<br />
GATEWAY=129.125.21.240</div>Gijshttps://wiki.td-er.nl/index.php?title=Main_Page&diff=2081Main Page2007-02-20T19:46:46Z<p>Gijs: /* Conference calls */</p>
<hr />
<div><big>'''GBE-Case study for Thales'''</big><br />
== VoIP software ==<br />
* [[Asterisk]] - A free PBX-system<br />
* [[Trixbox]] - A Linux-distro specially configured for Asterisk<br />
** [[Trixbox 1.2.3]] - Older version<br />
** [[List of IP's of our trixboxes]]<br />
<br />
* [[Used software]] - Full list of the software we used.<br />
** [[X-Lite]] - Free SIP soft-phone<br />
<br />
* [http://en.wikipedia.org/wiki/List_of_Asterisk_PBX_distributions List of Asterisk PBX distributions]<br />
<br />
== Asterisk Configuration ==<br />
* [[Dialplan Basics]] - The dialplan defines how Asterisk handles inbound and outbound calls.<br />
** [[Pattern-matching syntax]] - Patterns used to match a dialed number, for routing purposes in a dialplan.<br />
* [[Videoconferencing]] - Configuration to make a videocall<br />
* [[Screenshots VoIPBuster-config]] - Screenshots describing the configuration of VoIPBuster in Asterisk.<br />
* [[DUNDi configuration]] - How to setup your PBX to participate in a DUNDi cloud.<br />
* [[Conference calls]] - MeetMe simple conference rooms for Asterisk.<br />
* [[Dimensioning Asterisk PBX]] - Dimensioning PBX-server.<br />
* [[H323 configuration]] - How to setup your PBX to handle H.323 clients<br />
<br />
== VoIP Services ==<br />
* [[VoIPBuster]] - A provider that can connect VoIP-calls to the PSTN.<br />
* [[PSGw]] - Personal Skype to SIP and H.323 gateway.<br />
<br />
=== VoIP-test sites===<br />
To test the quality or your VoIP connection you can use some web tools that give you some information<br />
<br />
* [http://www.testyourvoip.com/ To test your VoIP quality and the MOS] (Mean Opinion Score, from 1 to 5) for some places around the world<br />
* [http://www.bandwidth.com/tools/voipTest To test if you have any problem in your routers/firewalls] that do not let pass the VoIP communications.<br />
* [http://www.talkswitch.com/voip/voip_capacity.php To know how many VoIP calls we can do simultaneously].<br />
<br />
For comparison, see the [[VoIP-quality site testresults]].<br />
<br />
== VoIP Protocols ==<br />
* [[IAX2]] - Inter-Asterisk eXchange protocol<br />
* [[DUNDi]] - Distributed Universal Number Discovery<br />
* [[H323]]<br />
* [[SIP vs IAX]]<br />
* [[SIP vs H323]]<br />
<br />
== Conference calls ==<br />
* [http://www.sineapps.com/news.php?rssid=1667 Videoswitch support for MeetMe] - Very basic support for redirecting video within a MeetMe conference.<br />
* [[app_conference]] - app_conference is a channel-independent conference application.<br />
<br />
<big>[[Links#Conference_call_links|Conference call related links]]</big>.<br />
<br />
== Analysis ==<br />
<big>''Networking''</big><br />
* [[Wireshark]] - Successor of Ethereal<br />
* [[Ethereal]] - Network traffic analyser<br />
** [[Ethereal/Wireshark Analysis]] of VoIP traffic<br />
** [[DUNDi network traffic]] - traffic analysis of DUNDi traffic.<br />
*** [[Asterisk DUNDi debug]] - Analysis of DUNDi traffic with Asterisk's debug.<br />
* [[Bandwidth estimates]]<br />
** [[SIPp]] - test tool / traffic generator for the SIP protocol<br />
* [[Controlling Bandwidth]]<br />
<big>''Compression''</big><br />
* [[Audio Codecs]] - Coding/Decoding of audio streams<br />
* [[Video Codecs]] - Coding/Decoding of video streams<br />
<br />
== Conclusions ==<br />
<br />
== [[Assignment 1: DUNDi & IAX (by Gijs & Ruben)]] ==<br />
<br />
== Misc ==<br />
* [[Documents]] - Collected documents<br />
* [[Links]] - Various links with related info.<br />
* [[DIY]] - Information on how to setup a cheap BPX yourself.<br />
* [[Glossary]]<br />
* [[Getting started]] with this Wiki.<br />
<br />
== THALES ==<br />
* [[THALES comments]] - THALES comments</div>Gijshttps://wiki.td-er.nl/index.php?title=Information_on_Audio_Codecs&diff=2080Information on Audio Codecs2007-02-20T19:45:08Z<p>Gijs: /* Audio codec translations */</p>
<hr />
<div>Codecs are used to convert an analog voice signal to digitally encoded version. Codecs vary in the sound quality, the bandwidth required, the computational requirements, etc. <br />
<br />
Each service, program, phone, gateway, etc typically supports several different codecs, and when talking to each other, negotiate which codec they will use. <br />
<br />
<br />
X-lite has various audio codecs implemented. The [http://www.xten.com/index.php?menu=Products&smenu=compare implemented audio codecs] of the X-lite 3.0 version are DVI4, G.711 uLaw/aLaw, GSM, iLBC as (narrow band audio codecs) and BV-32, BV FEC, DVI4, L16 PCM (wide band audio codecs). Eyebeam version 1.5 has a wider range of codecs available.<br />
<br />
<br />
=== G.711A & G.711U ===<br />
<br />
[http://en.wikipedia.org/wiki/G.711 G.711] is a codec primarily used in telephony, released in 1972. It samples the analogue voice input signal using pulse-code modulation (PCM) at a sampling rate of 8000 samples/second. <br />
<br />
The G.711 standard has two algorithms: the A-law (mostly used in Europe) and the U-law algorithm (used in North America and Japan).<br />
<br />
The G.711 codec encodes the pulse-code modulation samples (sampling rate of 8000 samples/second) to logarithmic 8-bit samples. This will lead to a (8000 times 8-bit=) 64 kbit/s bitstream. Note that this is the datastream without information send in the headers of the packages, so the actual datastream will be higher. Because the sampling rate of 8000 samples/second and the encoding to 8-bit samples are intrinsic properties of the codec, the bitstream can not exceed 64 kbit/s. If one wants to increase the quality of the voice by increasing the used bandwidth (> 64 kbit/s) one has to use another codec.<br />
<br />
=== Various codecs compared ===<br />
The following sites were used to build the following comparison:<br />
* [http://www.voip-wiki.de/tiki-index.php?page=guest-voip VoIP-wiki.de] (german website) <br />
* [http://www.speex.org/comparison/ Speex.org]<br />
* [http://www.voip-info.org/wiki/view/Codecs VoIP-info.org] - Codecs-page.<br />
<br />
{| border="1" cellspacing="0" <br />
! Codec<br />
! Compression method<br />
! Transfer rate<br />
! NEB<br />
! Frame size<br />
|- <br />
|G.711 <br />
|Pulse Code Modulation (PCM) <br />
|64 Kbps <br />
|87.2 Kbps<br />
|20 ms<br />
|-<br />
|G.726 <br />
|Adaptive Differential Pulse Code Modulation (ADPCM)<br />
|16-40 Kbps <br />
|55.2 Kbps<br />
|<br />
|-<br />
|G.728<br />
|Low Delay Code Excited Linear Prediction (LD-CELP) <br />
|16 Kbps <br />
|31.5 Kbps<br />
|0,625ms<br />
|-<br />
|G.729/G.729A <br />
|Conjugate Structure Algebraic Code Excited Linear Prediction (CD-ACELP)<br />
|8 Kbps <br />
|31.2 Kbps<br />
|10 ms<br />
|-<br />
|G.723.1 <br />
|Mulptiple Maximum Likehood Quantization (MPMLQ) <br />
|6.3 Kbit/s <br />
|21.9 Kbps<br />
|37.5 ms<br />
|-<br />
|G.723 <br />
|ACELP <br />
|5,3 Kbps <br />
|20.8 Kbps<br />
|<br />
|-<br />
|GSM<br />
|Global System for Mobile communications<br />
|13 Kbps<br />
|<br />
|20ms<br />
|-<br />
|[http://www.speex.org/ Speex] Narrowband (8kHz) <br />
|Patent-free audio compression<br />
|2.15-24.6 Kbps<br />
|<br />
|20ms<br />
|-<br />
|[http://www.speex.org/ Speex] Wideband (16kHz)<br />
|Patent-free audio compression<br />
|4-44.2 Kbps<br />
|<br />
|20ms<br />
|-<br />
|DVI4 <br />
|ADPCM<br />
|32 Kbps<br />
|<br />
|<br />
|-<br />
|iLBC <br />
|Internet Low Bandwidth Codec (free)<br />
|13,3 Kbps<br />
|<br />
|30ms<br />
|-<br />
|iLBC <br />
|Internet Low Bandwidth Codec (free)<br />
|15,2 Kbps<br />
|27.7 Kbps<br />
|20ms<br />
|-<br />
|L16 PCM <br />
|PCM<br />
|128 Kbps<br />
|<br />
|<br />
|-<br />
|EVCR <br />
|Enhanced Variable Rate Codec<br />
|8 Kbps<br />
|<br />
|<br />
|-<br />
|}<br />
<br />
''NEB = Nominal Ethernet Bandwidth (one direction)''<br />
<br />
<br />
'''Notes''':<br />
* G711u/a - Requires 64+Kbps (inbound and outbound) continuous data stream for a quality call, plus the SIP signal. A 128Kbps connection has shown to be the minimal connection needed in our testing. <br />
* G723 - Requires 6.4+Kbps (I and O) continuous data stream and also needs room for the SIP signal, 28.8Kbps connection has shown to be the minimal connection. <br />
<br />
<br />
* From the maximum voice quality point of view, when enough bandwidth is available, the best quality can be obtained by using the L16 PCM codec. This L16 PCM codec is the same as the G.711 codec, however the L16 PCM codec samples to 16 bits samples instead of the 8 bits samples in the case of the G.711 codec.<br />
<br />
* Asterisk will resample all codecs internally to 8000 samples/sec. This means using for example the Speex Wide-band (16 kHz sample-rate) or even Ultra-wide-band (32 kHz sample-rate) with Asterisk is useless.<br />
<br />
*Codecs with a frame-size other than 20 ms, appear to work bad with Asterisk. This may have to do with the IAX-protocol.<br />
<br />
<br />
==Audio codec translations==<br />
When Asterisk can choose between different codecs (prerecorded samples) and also when conversions between codecs have to be made (e.g. bandwidth=low), Asterisk will choose the best codec out of the conversion-matrix.<br />
<br />
In the Asterisk CLI this machine-specific matrix can be shown: (N.B. matrix is taken from a P3 machine)<br />
asterisk1*CLI> show translation<br />
Translation times between formats (in milliseconds)<br />
Source Format (Rows) Destination Format(Columns)<br />
g723 gsm ulaw alaw g726 adpcm slin lpc10 g729 speex ilbc<br />
g723 - - - - - - - - - - -<br />
gsm - - 3 3 7 3 2 8 - 86 30<br />
ulaw - 7 - 1 6 2 1 7 - 85 29<br />
alaw - 7 1 - 6 2 1 7 - 85 29<br />
g726 - 10 5 5 - 5 4 10 - 88 32<br />
adpcm - 7 2 2 6 - 1 7 - 85 29<br />
slin - 6 1 1 5 1 - 6 - 84 28<br />
lpc10 - 12 7 7 11 7 6 - - 90 34<br />
g729 - - - - - - - - - - -<br />
speex - 12 7 7 11 7 6 12 - - 34<br />
ilbc - 14 9 9 13 9 8 14 - 92 -<br />
<br />
The list of available codecs can be made visible like this:<br />
asterisk1*CLI> show audio codecs<br />
Disclaimer: this command is for informational purposes only.<br />
It does not indicate anything about your configuration.<br />
INT BINARY HEX TYPE NAME DESC<br />
--------------------------------------------------------------------------------<br />
1 (1 << 0) (0x1) audio g723 (G.723.1)<br />
2 (1 << 1) (0x2) audio gsm (GSM)<br />
4 (1 << 2) (0x4) audio ulaw (G.711 u-law)<br />
8 (1 << 3) (0x8) audio alaw (G.711 A-law)<br />
16 (1 << 4) (0x10) audio g726 (G.726)<br />
32 (1 << 5) (0x20) audio adpcm (ADPCM)<br />
64 (1 << 6) (0x40) audio slin (16 bit Signed Linear PCM)<br />
128 (1 << 7) (0x80) audio lpc10 (LPC10)<br />
256 (1 << 8) (0x100) audio g729 (G.729A)<br />
512 (1 << 9) (0x200) audio speex (SpeeX)<br />
1024 (1 << 10) (0x400) audio ilbc (iLBC)<br />
<br />
==[[Links#Audio_codecs|Links]]==</div>Gijshttps://wiki.td-er.nl/index.php?title=Bandwidth_estimates&diff=2079Bandwidth estimates2007-02-20T19:43:01Z<p>Gijs: /* Bandwidth calculators */</p>
<hr />
<div>== Packet overhead ==<br />
Communication over an IP-network has some overhead for each data-packet.<br />
This overhead can be seen as a constant value in calculations, although it is dependant on a few parameters like the networkstructure and wether it is an TCP or UDP packet.<br />
<br />
For TCP, an overhead of 52 Bytes is average and for UDP it is 28 Bytes.<br />
<br />
See for more detailed information [[ethernet payload datarates]].<br />
<br />
<br />
Along with the data used by the codec(s), some control data also has to be transmitted.<br />
This means the overhead per packet is even greater than only the IP-headers.<br />
This overhead is different for several protocols (e.g. SIP and IAX) and may also be dependant on the number of streams combined in the packet. (e.g. audio and video or even multiple conversations)<br />
<br />
== Trunking ==<br />
Because of this packet-overhead, several protocols (like IAX2) support some kind of multiplexing.<br />
This means in each datapacket which is sent over the network, several packets of multiple conversations are put together in order to minimize the amount of packets on the network, thus maximizing the payload and minimizing the overhead.<br />
<br />
This means the bandwith used between 2 PBX stations can be seen as:<br />
<br />
* BR<sub>codec</sub> * #channels + IP-overhead + PBX-protocol-overhead.<br />
This saves ''(n-1) * (IP-overhead + PBX-overhead)'' in traffic and even more important, all traffic can be sent over one connection.<br />
<br />
<br />
Trunk mode '''''requires''''' having a Zaptel interface in the Asterisk server. Therefore we were not able to do measurements on the effect trunking has on the bandwidth consumption.<br />
We found however a site where someone has put a low of testresults on trunking.<br />
<br />
[[IAX2 bandwidth comparison]]<br />
<br />
== Bandwidth calculators ==<br />
'''Audio codec-only:'''<br />
* [http://www.bandcalc.com/ Packetize VoIP Bandwidth Calculator] - Support for multiple channels.<br />
* [http://www.erlang.com/calculator/eipb/ Erlangs and VoIP Bandwidth Calculator] - Uses "Erlangs" as parameter. (''Erlangs'' is the number of hours of call traffic there are during the busiest hour of operation of a telephone system.)<br />
* [http://www.erlang.com/calculator/lipb/ Lines to VoIP Bandwidth calculator] - Estimate the bandwidth required to transport a given number of voice paths through an IP based network. Reverse calculations are also possible.<br />
* [http://www.erlang.com/calculator/ List of various online calculators] - Eight free traffic calculators for dimensioning telecommunications trunk groups, calculating Voice over IP bandwidth and estimating staffing requirements of a call center / call center.<br />
* [http://www.asteriskguru.com/tools/bandwidth_calculator.php Asterisk-guru bandwidth calculator] - Bandwidth calculator which takes the VoIP-interconnect protocol into account ('''MGCP/H323/SIP/IAX2/IAX2-trunked''').<br />
* [http://site.asteriskguide.com/bandcalc/bandcalc.php AsteriskGuide Bandwidth calculator for VoIP] - Straightforward bandwidth calculator, which takes into account L2-technollogy (ADSL/ethernet/WiFi etc), protocol (SIP/IAX/etc), VPN and some protocol overhead.<br />
<br />
<br />
* [http://www.openh323.org/docs/bandwidth.html Codec Bandwidth and Latency Calculations] - Pre-calculated, Excel-sheet also available.<br />
<br />
<big>Links</big><br />
* [[Links#Bandwidth_calculators|More bandwidth calculators]]<br />
<br />
== Audio Codecs ==<br />
See the [[Audio Codecs]]-section for detailed info on various audio codecs.<br />
<br />
== Asterisk bandwidth IAX2 ==<br />
See the [[IAX2 bandwidth comparison]]-section for more numbers on trunking over an IAX-connection.<br />
<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+bandwidth+iax2 IAX2 Bandwidth Study] - To obtain a better chart of actual bandwidth usage per codec as seen "on-the-wire" when using IAX2 trunking between two Asterisk telephony servers.</div>Gijshttps://wiki.td-er.nl/index.php?title=Bandwidth_estimates&diff=2078Bandwidth estimates2007-02-20T19:42:35Z<p>Gijs: /* Bandwidth calculators */</p>
<hr />
<div>== Packet overhead ==<br />
Communication over an IP-network has some overhead for each data-packet.<br />
This overhead can be seen as a constant value in calculations, although it is dependant on a few parameters like the networkstructure and wether it is an TCP or UDP packet.<br />
<br />
For TCP, an overhead of 52 Bytes is average and for UDP it is 28 Bytes.<br />
<br />
See for more detailed information [[ethernet payload datarates]].<br />
<br />
<br />
Along with the data used by the codec(s), some control data also has to be transmitted.<br />
This means the overhead per packet is even greater than only the IP-headers.<br />
This overhead is different for several protocols (e.g. SIP and IAX) and may also be dependant on the number of streams combined in the packet. (e.g. audio and video or even multiple conversations)<br />
<br />
== Trunking ==<br />
Because of this packet-overhead, several protocols (like IAX2) support some kind of multiplexing.<br />
This means in each datapacket which is sent over the network, several packets of multiple conversations are put together in order to minimize the amount of packets on the network, thus maximizing the payload and minimizing the overhead.<br />
<br />
This means the bandwith used between 2 PBX stations can be seen as:<br />
<br />
* BR<sub>codec</sub> * #channels + IP-overhead + PBX-protocol-overhead.<br />
This saves ''(n-1) * (IP-overhead + PBX-overhead)'' in traffic and even more important, all traffic can be sent over one connection.<br />
<br />
<br />
Trunk mode '''''requires''''' having a Zaptel interface in the Asterisk server. Therefore we were not able to do measurements on the effect trunking has on the bandwidth consumption.<br />
We found however a site where someone has put a low of testresults on trunking.<br />
<br />
[[IAX2 bandwidth comparison]]<br />
<br />
== Bandwidth calculators ==<br />
'''Audio codec-only:'''<br />
* [http://www.bandcalc.com/ Packetize VoIP Bandwidth Calculator] - Support for multiple channels.<br />
* [http://www.erlang.com/calculator/eipb/ Erlangs and VoIP Bandwidth Calculator] - Uses "Erlangs" as parameter. (''Erlangs'' is the number of hours of call traffic there are during the busiest hour of operation of a telephone system.)<br />
* [http://www.erlang.com/calculator/lipb/ Lines to VoIP Bandwidth calculator] - Estimate the bandwidth required to transport a given number of voice paths through an IP based network. Reverse calculations are also possible.<br />
* [http://www.erlang.com/calculator/ List of various online calculators] - Eight free traffic calculators for dimensioning telecommunications trunk groups, calculating Voice over IP bandwidth and estimating staffing requirements of a call center / call center.<br />
* [http://www.asteriskguru.com/tools/bandwidth_calculator.php Asterisk-guru bandwidth calculator] - Bandwidth calculator which takes the VoIP-interconnect protocol into account ('''MGCP/H323/SIP/IAX2/IAX2-trunked''').<br />
* [http://site.asteriskguide.com/bandcalc/bandcalc.php AsteriskGuide Bandwidth calculator for VoIP] - Straightforward bandwidth calculator, which takes into account L2-technollogy (ADSL/ethernet/WiFi etc), protocol (SIP/IAX/etc), VPN and some protocol overhead.<br />
<br />
<br />
* [http://www.openh323.org/docs/bandwidth.html Codec Bandwidth and Latency Calculations] - Pre-calculated, Excel-sheet also available.<br />
<br />
<br />
* [[Links#Bandwidth_calculators|More bandwidth calculators]]<br />
<br />
== Audio Codecs ==<br />
See the [[Audio Codecs]]-section for detailed info on various audio codecs.<br />
<br />
== Asterisk bandwidth IAX2 ==<br />
See the [[IAX2 bandwidth comparison]]-section for more numbers on trunking over an IAX-connection.<br />
<br />
* [http://www.voip-info.org/wiki/index.php?page=Asterisk+bandwidth+iax2 IAX2 Bandwidth Study] - To obtain a better chart of actual bandwidth usage per codec as seen "on-the-wire" when using IAX2 trunking between two Asterisk telephony servers.</div>Gijshttps://wiki.td-er.nl/index.php?title=Assignment_1:_DUNDi_%26_IAX_(by_Gijs_%26_Ruben)&diff=2077Assignment 1: DUNDi & IAX (by Gijs & Ruben)2007-02-20T19:40:18Z<p>Gijs: </p>
<hr />
<div><big>'''1.0 Getting started'''</big><br />
<br />
*''Asterisk''<br />
** [[About Asterisk]]<br />
** [[Configuration of Asterisk]]<br />
*''[[Trixbox]]''<br />
<br />
*''[[X-Lite]]''<br />
<br />
*''[[Ethereal]] & [[Wireshark]]''<br />
<br />
<big>'''1.1 Controlling the video-quality'''</big><br />
* [[Information on Video Codecs]]<br />
* [[Traffic measurements Video]]<br />
<big>'''1.2 Controlling the voice-quality'''</big><br />
* [[Information on Audio Codecs]]<br />
* [[Traffic measurements Audio]]<br />
<big>'''1.3 DUNDi'''</big><br />
* [[DUNDi]]<br />
<br />
<big>'''1.4 Trixbox configuration of DUNDi''''</big><br />
* [[DUNDi configuration|Configuration of DUNDi]]<br />
* [[DUNDi network traffic]]<br />
** [[Asterisk DUNDi debug]]<br />
<br />
<br />
<big>'''1.5 Configuration of a telephone exchange'''</big><br />
<br />
<br />
<big>'''[[Communication of Trixboxes]]'''</big><br />
<br />
<big>'''[[Configuration of a telephone exchange]]'''</big><br />
<br />
<br />
[[Vragen aan Thales]]</div>Gijshttps://wiki.td-er.nl/index.php?title=What_is_DUNDi&diff=2076What is DUNDi2007-02-20T19:39:24Z<p>Gijs: /* DUNDi as a routing protocol */</p>
<hr />
<div>== What is DUNDi? ==<br />
<br />
DUNDi is a p2p system, used to to translate phone numbers to VoIP-addresses.<br />
<br />
It works very much like the DNS system, or a phone book. Only difference with the DNS system is that you are only advertising your own numbers. The difference with the phonebook is that you don't have all pages, but those are spread among the peers in the network.<br />
<br />
It can be used in private or public networks. For use in public networks, you will have to agree to the [[GPA|General Peering Agreement]].<br />
<br />
<br />
== How does it work? ==<br />
[[image:dundi call flow.gif|right|300px]]<br />
''Ask a friend, and they ask their friends until someone knows the answer.''<br />
<br />
Even if you didn’t request it, remember it for a period of time (cache), in order to put less strain on the network.<br />
<br />
This answer to a DUNDi lookup will tell you about how to reach the phone (extension) you want. Most often these directions will not lead you directly to the phone on the other end, but it will lead you to a point where they will connect you.<br />
<br />
=== DUNDi call flow ===<br />
For a DUNDi-lookup, followed by a call, several config-files will play a role.<br />
#Initial DUNDi request from end point and authentication<br />
#Internal lookup in dialplan to determine if we should reply<br />
#If found, pass information back to DUNDi module<br />
#Reply is sent back to requesting node<br />
#Incoming call setup and authentication<br />
#Call is controlled via dialplan logic<br />
<br />
=== DUNDI lookup schema ===<br />
[[image:DUNDi-lookup-schema.gif|center]]<br />
<br />
== Basic configuration ==<br />
*Create a set of keys using astkeygen<br />
*Place keys in <tt>/var/lib/asterisk/keys</tt> and distribute public key to DUNDi peers ('''also be sure to initialize the keys'''!)<br />
*Configure <tt>dundi.conf</tt> to control advertisements and lookups<br />
*Configure <tt>extensions.conf</tt> to control what we advertise<br />
*Configure a channel configuration file (<tt>sip.conf</tt>, <tt>iax.conf</tt>) for incoming calls<br />
*verify <tt>pbx_dundi.so</tt> module is (re)loaded in <tt>modules.conf</tt><br />
<br />
<br />
<br />
=== dundi.conf===<br />
*Used to control how we reply to requests<br />
*Controls “DUNDi peers” <= used to control who we will reply to, and who we will use to send requests<br />
*Can setup multiple groups / networks<br />
<br />
=== Dialplan (extensions.conf) ===<br />
*Controls '''what''' we advertise and how to handle the call<br />
*Can use the same context for both advertisements and call handling – or separate contexts (recommended)<br />
*Can use pattern matching to advertise “ranges”<br />
<br />
<br />
<br />
=== Channel configuration file ===<br />
*Controls the authentication of the incoming call and delivery to incoming context (as per usual Asterisk fashion)<br />
*Usually via <tt>iax.conf</tt>, but not necessarily<br />
*Authentication using <tt>dbsecret</tt> to pull rotating key from AstDB<br />
<br />
<br />
== DUNDi as a routing protocol ==<br />
<br />
<br />
== DUNDi Trust Group ==<br />
From [http://www.sineapps.com/news.php?rssid=240 Another DUNDi site]:<br />
<br />
DUNDi is essentially a trusted, peer-to-peer system for being able to call any phone number from the Internet. DUNDi works by creating a network of nodes called the "DUNDi E.164 Trust Group" which are bound by a common peering agreement known as the General Peering Agreement or [[GPA]]. The GPA legally binds the members of the Trust Group to provide good-faith accurate information to the other nodes on the network, and provides standards by which the community can insure the integrity of the information on the nodes themselves. Unlike ENUM or similar systems, DUNDi is explicitly designed to preclude any necessity for a single centralized system which could be a source of fees, regulation, etc.<br />
<br />
Much less dramatically, DUNDi can also be used within a private enterprise to share a dialplan efficiently between multiple nodes, without incuring a risk of a single point of failure. In this way, administrators can locally add extensions which become immediately available to the other nodes in the system.<br />
<br />
In the DUNDi model, there is no central repository. Instead, node participate in a trust system in which each node has a trust relationship with at least one other node in the system. When the client requests a number or extension it does not know how to terminate, it queries the nodes directly connected to it. Those nodes in turn will query nodes which are directly connected to them and so on (care is taken in the protocol to minimize the actual number of transactions and nodes that are queried, while maintaining the same effective answer as querying the entire system). The resulting answers are collated, cached appropriately at each involved node, and passed along to the original requesting party.<br />
<br />
<br />
==[[Links#DUNDi_links|DUNDi links]]==</div>Gijshttps://wiki.td-er.nl/index.php?title=Main_Page&diff=2004Main Page2007-02-20T15:49:12Z<p>Gijs: /* Analysis */</p>
<hr />
<div><big>'''GBE-Case study for Thales'''</big><br />
== VoIP software ==<br />
* [[Asterisk]] - A free PBX-system<br />
* [[Trixbox]] - A Linux-distro specially configured for Asterisk<br />
** [[Trixbox 1.2.3]] - Older version<br />
** [[List of IP's of our trixboxes]]<br />
<br />
* [[Used software]] - Full list of the software we used.<br />
** [[X-Lite]] - Free SIP soft-phone<br />
<br />
* [http://en.wikipedia.org/wiki/List_of_Asterisk_PBX_distributions List of Asterisk PBX distributions]<br />
<br />
== Asterisk Configuration ==<br />
* [[Dialplan Basics]] - The dialplan defines how Asterisk handles inbound and outbound calls.<br />
** [[Pattern-matching syntax]] - Patterns used to match a dialed number, for routing purposes in a dialplan.<br />
* [[Videoconferencing]] - Configuration to make a videocall<br />
* [[Screenshots VoIPBuster-config]] - Screenshots describing the configuration of VoIPBuster in Asterisk.<br />
* [[DUNDi configuration]] - How to setup your PBX to participate in a DUNDi cloud.<br />
* [[Conference calls]] - MeetMe simple conference rooms for Asterisk.<br />
* [[Dimensioning Asterisk PBX]] - Dimensioning PBX-server.<br />
* [[H323 configuration]] - How to setup your PBX to handle H.323 clients<br />
<br />
== VoIP Services ==<br />
* [[VoIPBuster]] - A provider that can connect VoIP-calls to the PSTN.<br />
* [[PSGw]] - Personal Skype to SIP and H.323 gateway.<br />
<br />
=== VoIP-test sites===<br />
To test the quality or your VoIP connection you can use some web tools that give you some information<br />
<br />
* [http://www.testyourvoip.com/ To test your VoIP quality and the MOS] (Mean Opinion Score, from 1 to 5) for some places around the world<br />
* [http://www.bandwidth.com/tools/voipTest To test if you have any problem in your routers/firewalls] that do not let pass the VoIP communications.<br />
* [http://www.talkswitch.com/voip/voip_capacity.php To know how many VoIP calls we can do simultaneously].<br />
<br />
For comparison, see the [[VoIP-quality site testresults]].<br />
<br />
== VoIP Protocols ==<br />
* [[IAX2]] - Inter-Asterisk eXchange protocol<br />
* [[DUNDi]] - Distributed Universal Number Discovery<br />
* [[H323]]<br />
* [[SIP vs IAX]]<br />
* [[SIP vs H323]]<br />
<br />
== Conference calls ==<br />
* [http://www.sineapps.com/news.php?rssid=1667 Videoswitch support for MeetMe] - Very basic support for redirecting video within a MeetMe conference.<br />
* [[app_conference]] - app_conference is a channel-independent conference application.<br />
<br />
== Analysis ==<br />
<big>''Networking''</big><br />
* [[Wireshark]] - Successor of Ethereal<br />
* [[Ethereal]] - Network traffic analyser<br />
** [[Ethereal/Wireshark Analysis]] of VoIP traffic<br />
** [[DUNDi network traffic]] - traffic analysis of DUNDi traffic.<br />
*** [[Asterisk DUNDi debug]] - Analysis of DUNDi traffic with Asterisk's debug.<br />
* [[Bandwidth estimates]]<br />
** [[SIPp]] - test tool / traffic generator for the SIP protocol<br />
* [[Controlling Bandwidth]]<br />
<big>''Compression''</big><br />
* [[Audio Codecs]] - Coding/Decoding of audio streams<br />
* [[Video Codecs]] - Coding/Decoding of video streams<br />
<br />
== Conclusions ==<br />
<br />
== [[Assignment Gijs & Ruben]] ==<br />
<br />
== Misc ==<br />
* [[Documents]] - Collected documents<br />
* [[Links]] - Various links with related info.<br />
* [[DIY]] - Information on how to setup a cheap BPX yourself.<br />
* [[Glossary]]<br />
* [[Getting started]] with this Wiki.<br />
<br />
== THALES ==<br />
* [[THALES comments]] - THALES comments</div>Gijshttps://wiki.td-er.nl/index.php?title=Main_Page&diff=2003Main Page2007-02-20T15:47:46Z<p>Gijs: /* Analysis */</p>
<hr />
<div><big>'''GBE-Case study for Thales'''</big><br />
== VoIP software ==<br />
* [[Asterisk]] - A free PBX-system<br />
* [[Trixbox]] - A Linux-distro specially configured for Asterisk<br />
** [[Trixbox 1.2.3]] - Older version<br />
** [[List of IP's of our trixboxes]]<br />
<br />
* [[Used software]] - Full list of the software we used.<br />
** [[X-Lite]] - Free SIP soft-phone<br />
<br />
* [http://en.wikipedia.org/wiki/List_of_Asterisk_PBX_distributions List of Asterisk PBX distributions]<br />
<br />
== Asterisk Configuration ==<br />
* [[Dialplan Basics]] - The dialplan defines how Asterisk handles inbound and outbound calls.<br />
** [[Pattern-matching syntax]] - Patterns used to match a dialed number, for routing purposes in a dialplan.<br />
* [[Videoconferencing]] - Configuration to make a videocall<br />
* [[Screenshots VoIPBuster-config]] - Screenshots describing the configuration of VoIPBuster in Asterisk.<br />
* [[DUNDi configuration]] - How to setup your PBX to participate in a DUNDi cloud.<br />
* [[Conference calls]] - MeetMe simple conference rooms for Asterisk.<br />
* [[Dimensioning Asterisk PBX]] - Dimensioning PBX-server.<br />
* [[H323 configuration]] - How to setup your PBX to handle H.323 clients<br />
<br />
== VoIP Services ==<br />
* [[VoIPBuster]] - A provider that can connect VoIP-calls to the PSTN.<br />
* [[PSGw]] - Personal Skype to SIP and H.323 gateway.<br />
<br />
=== VoIP-test sites===<br />
To test the quality or your VoIP connection you can use some web tools that give you some information<br />
<br />
* [http://www.testyourvoip.com/ To test your VoIP quality and the MOS] (Mean Opinion Score, from 1 to 5) for some places around the world<br />
* [http://www.bandwidth.com/tools/voipTest To test if you have any problem in your routers/firewalls] that do not let pass the VoIP communications.<br />
* [http://www.talkswitch.com/voip/voip_capacity.php To know how many VoIP calls we can do simultaneously].<br />
<br />
For comparison, see the [[VoIP-quality site testresults]].<br />
<br />
== VoIP Protocols ==<br />
* [[IAX2]] - Inter-Asterisk eXchange protocol<br />
* [[DUNDi]] - Distributed Universal Number Discovery<br />
* [[H323]]<br />
* [[SIP vs IAX]]<br />
* [[SIP vs H323]]<br />
<br />
== Conference calls ==<br />
* [http://www.sineapps.com/news.php?rssid=1667 Videoswitch support for MeetMe] - Very basic support for redirecting video within a MeetMe conference.<br />
* [[app_conference]] - app_conference is a channel-independent conference application.<br />
<br />
== Analysis ==<br />
<big>''Networking''</big><br />
* [[Wireshark]] - Successor of Ethereal<br />
* [[Ethereal]] - Network traffic analyser<br />
** [[Ethereal/Wireshark Analysis]] of VoIP traffic<br />
** [[DUNDi network traffic]] - traffic analysis of DUNDi traffic.<br />
* [[Bandwidth estimates]]<br />
** [[SIPp]] - test tool / traffic generator for the SIP protocol<br />
* [[Controlling Bandwidth]]<br />
<big>''Compression''</big><br />
* [[Audio Codecs]] - Coding/Decoding of audio streams<br />
* [[Video Codecs]] - Coding/Decoding of video streams<br />
<br />
== Conclusions ==<br />
<br />
== [[Assignment Gijs & Ruben]] ==<br />
<br />
== Misc ==<br />
* [[Documents]] - Collected documents<br />
* [[Links]] - Various links with related info.<br />
* [[DIY]] - Information on how to setup a cheap BPX yourself.<br />
* [[Glossary]]<br />
* [[Getting started]] with this Wiki.<br />
<br />
== THALES ==<br />
* [[THALES comments]] - THALES comments</div>Gijshttps://wiki.td-er.nl/index.php?title=Assignment_1:_DUNDi_%26_IAX_(by_Gijs_%26_Ruben)&diff=2002Assignment 1: DUNDi & IAX (by Gijs & Ruben)2007-02-20T15:43:14Z<p>Gijs: </p>
<hr />
<div><big>'''Getting started'''</big><br />
<br />
''Asterisk''<br />
* [[About Asterisk]]<br />
* [[Configuration of Asterisk]]<br />
''[[Trixbox]]''<br />
<br />
''[[X-Lite]]''<br />
<br />
''[[Ethereal]] & [[Wireshark]]''<br />
<br />
<big>'''Controlling the video-quality'''</big><br />
* [[Information on Video Codecs]]<br />
* [[Traffic measurements Video]]<br />
<big>'''Controlling the voice-quality'''</big><br />
* [[Information on Audio Codecs]]<br />
* [[Traffic measurements Audio]]<br />
<big>'''DUNDi'''</big><br />
* [[What is DUNDi?]]<br />
* [[DUNDi configuration|Configuration of DUNDi]]<br />
* [[DUNDi network traffic]]<br />
** [[Asterisk DUNDi debug]]<br />
<br />
<br />
<big>'''[[Communication of Trixboxes]]'''</big><br />
<br />
<big>'''[[Configuration of a telephone exchange]]'''</big><br />
<br />
<br />
[[Vragen aan Thales]]</div>Gijshttps://wiki.td-er.nl/index.php?title=Asterisk_DUNDi_debug&diff=2001Asterisk DUNDi debug2007-02-20T15:42:26Z<p>Gijs: </p>
<hr />
<div>When making a call from extension 1301 to 1001, the lookup has to pass 2 PBX's.<br />
<br />
[[Assignment Gijs & Ruben|Back to "Assignment Gijs & Ruben"]]<br />
==Situation==<br />
'''Misc:'''<br />
* <tt>TTL=32</tt><br />
* Expiration/<tt>cachetime</tt> = 5 seconds, to make sure results are not cached.<br />
* Context = <tt>priv</tt><br />
* Used DUNDi-advertise options: <tt>nounsolicited,nocomunsolicit,nopartial</tt><br />
<br />
'''Extensions:'''<br />
* 1'''3'''01 is connected to PBX'''1'''<br />
* 1'''6'''01 is connected to PBX'''2'''<br />
* 1'''0'''01 is connected to PBX'''3'''<br />
<br />
'''Peering:'''<br />
* PBX1 (<tt>192.168.1.101</tt>) peers with PBX2 (<tt>192.168.1.103</tt>) and vice-verse.<br />
* PBX2 (<tt>192.168.1.103</tt>) peers with PBX3 (<tt>192.168.1.106</tt>) and vice-verse.<br />
* PBX1 '''does not peer''' with PBX3 and vice-verse.<br />
<br />
<br />
In the CLI this shows as follows:<br />
<br />
'''PBX1''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (2 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX2''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:97:0b:98 192.168.1.101 (S) Symmetric Unavail OK (3 ms)<br />
00:0c:29:d2:d8:ec 192.168.1.106 (S) Symmetric Unavail OK (1 ms)<br />
2 dundi peers [2 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX3''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (1 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
<br />
For ext. 1301 to call 1001, all 3 PBX's schould participate in the lookup.<br />
<br />
== DUNDi Debug-info ==<br />
In Asterisk's CLI, you can get debug-info with the command <tt>dundi debug</tt>.<br />
To switch the debug off, enter <tt>dundi no debug</tt><br />
<br />
Each peer will stay in contact with its peers by sending some sort of ping-packets to eachother at regular intervals. Therefore always switch the debug-mode off before analysing the output.<br />
<br />
''N.B. large key's have been abbreviated for readability and are marked with "....."''<br />
=== PBX 1 ===<br />
Command received from Asterisk to ask for extension 1001:<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 32<br />
The actual frame is sent to the peer:<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
ENTITY IDENT : 00:0c:29:97:0b:98<br />
SHAREDKEY : [ 79 71 ..... f9 00 bc ]<br />
SIGNATURE : [ a1 b3 ..... 7a 5c 14 ]<br />
ENCDATA : [IV 302f4771ce6cae684c01631987a2e264] 4 encrypted blocks<br />
Some keep-in-contact ping-ack is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
The Answer from the lookup is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
ENCDATA : [IV 7212e969e4452c685dcecc777b15ea12] 6 encrypted blocks<br />
The decoded content of the received data:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
=== PBX 2 ===<br />
A DUNDi-lookup request is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.101:4520]<br />
ENTITY IDENT : 00:0c:29:97:0b:98<br />
SHAREDKEY : [ 79 71 ..... f9 00 bc ]<br />
SIGNATURE : [ a1 b3 ..... 7a 5c 14 ]<br />
ENCDATA : [IV 302f4771ce6cae684c01631987a2e264] 4 encrypted blocks<br />
The decoded content of the received package:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.101:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 32<br />
The requested number is not known, the other peer(s) are queried: (note the lowered TTL)<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520]<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.106:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:a7:e0:73<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 31<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.106:4520]<br />
ENTITY IDENT : 00:0c:29:a7:e0:73<br />
SHAREDKEY : [ c6 a3 ..... cf 77 b7 ]<br />
SIGNATURE : [ 9d 83 ..... 24 60 0d ]<br />
ENCDATA : [IV c99afc653712130a9cb4143122855940] 4 encrypted blocks<br />
Some acknowledgement on a keep-in-contact ping is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520]<br />
The answer on the lookup is received from PBX 3:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520]<br />
ENCDATA : [IV 30a7274590946f4c5261a311e9a33822] 6 encrypted blocks<br />
The decrypted content of the received packet.<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
The answer of the DUNDi-lookup is sent back to PBX 1:<br />
Tx-Frame Retry[No] -- OSeqno: 001 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 21146 DTrans: 28371 [192.168.1.106:4520] (Final)<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520]<br />
ENCDATA : [IV 7212e969e4452c685dcecc777b15ea12] 6 encrypted blocks<br />
<br />
<br />
=== PBX 3 ===<br />
Receive frame with DUNDi-lookup command:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.103:4520]<br />
ENTITY IDENT : 00:0c:29:a7:e0:73<br />
SHAREDKEY : [ c6 a3 ..... cf 77 b7 ]<br />
SIGNATURE : [ 9d 83 ..... 24 60 0d ]<br />
ENCDATA : [IV c99afc653712130a9cb4143122855940] 4 encrypted blocks<br />
The decoded data from the received frame:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.103:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:a7:e0:73<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 31<br />
Answer is sent back: ''"Yes I know this extension... it is ...."''<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520]<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
A keep-contact-ping is sent:<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520]<br />
ENCDATA : [IV 30a7274590946f4c5261a311e9a33822] 6 encrypted blocks<br />
... and received:<br />
Rx-Frame Retry[No] -- OSeqno: 001 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 21146 DTrans: 28371 [192.168.1.103:4520] (Final)<br />
There is an incomming call:<br />
recordingcheck|20070221-073234|1172061154.14: Inbound recording not enabled<br />
dialparties.agi: Starting New Dialparties.agi<br />
dialparties.agi: priority is 1<br />
dialparties.agi: Caller ID name is 'device' number is '1301'<br />
dialparties.agi: Methodology of ring is 'none'<br />
== CLI lookup ==<br />
Make sure you include the context (here: <tt>priv</tt>).<br />
When no context is given, the DUNDi lookup defaults to E.164.<br />
===1001@priv:===<br />
asterisk1*CLI> dundi lookup 1001@priv<br />
1. 0 IAX2/priv:ZUIkF+Wl0TuXtd13pK5UXQ@192.168.1.106/1001 (EXISTS|NOUNSLCTD|NOCOMUNSLTD)<br />
from 00:0c:29:d2:d8:ec, expires in 5 s<br />
DUNDi lookup completed in 89 ms<br />
<br />
<br />
===1301@priv:===<br />
asterisk1*CLI> dundi lookup 1301@priv<br />
1. 0 IAX2/priv:NbJdfOHodguANV0MOKuaQg@192.168.1.101/1301 (EXISTS|NOUNSLCTD|NOCOMUNSLTD)<br />
from 00:0c:29:97:0b:98, expires in 5 s<br />
DUNDi lookup completed in 52 ms<br />
<br />
===1601@priv:===<br />
asterisk1*CLI> dundi lookup 1601@priv<br />
1. 0 IAX2/priv:cZzQREFhaxEiS5w22f2Oag@192.168.1.103/1601 (EXISTS|NOUNSLCTD|NOCOMUNSLTD)<br />
from 00:0c:29:a7:e0:73, expires in 5 s<br />
DUNDi lookup completed in 44 ms</div>Gijshttps://wiki.td-er.nl/index.php?title=Asterisk_DUNDi_debug&diff=2000Asterisk DUNDi debug2007-02-20T15:35:04Z<p>Gijs: /* CLI lookup */</p>
<hr />
<div>When making a call from extension 1301 to 1001, the lookup has to pass 2 PBX's.<br />
<br />
==Situation==<br />
'''Misc:'''<br />
* <tt>TTL=32</tt><br />
* Expiration/<tt>cachetime</tt> = 5 seconds, to make sure results are not cached.<br />
* Context = <tt>priv</tt><br />
* Used DUNDi-advertise options: <tt>nounsolicited,nocomunsolicit,nopartial</tt><br />
<br />
'''Extensions:'''<br />
* 1'''3'''01 is connected to PBX'''1'''<br />
* 1'''6'''01 is connected to PBX'''2'''<br />
* 1'''0'''01 is connected to PBX'''3'''<br />
<br />
'''Peering:'''<br />
* PBX1 (<tt>192.168.1.101</tt>) peers with PBX2 (<tt>192.168.1.103</tt>) and vice-verse.<br />
* PBX2 (<tt>192.168.1.103</tt>) peers with PBX3 (<tt>192.168.1.106</tt>) and vice-verse.<br />
* PBX1 '''does not peer''' with PBX3 and vice-verse.<br />
<br />
<br />
In the CLI this shows as follows:<br />
<br />
'''PBX1''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (2 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX2''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:97:0b:98 192.168.1.101 (S) Symmetric Unavail OK (3 ms)<br />
00:0c:29:d2:d8:ec 192.168.1.106 (S) Symmetric Unavail OK (1 ms)<br />
2 dundi peers [2 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX3''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (1 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
<br />
For ext. 1301 to call 1001, all 3 PBX's schould participate in the lookup.<br />
<br />
== DUNDi Debug-info ==<br />
In Asterisk's CLI, you can get debug-info with the command <tt>dundi debug</tt>.<br />
To switch the debug off, enter <tt>dundi no debug</tt><br />
<br />
Each peer will stay in contact with its peers by sending some sort of ping-packets to eachother at regular intervals. Therefore always switch the debug-mode off before analysing the output.<br />
<br />
''N.B. large key's have been abbreviated for readability and are marked with "....."''<br />
=== PBX 1 ===<br />
Command received from Asterisk to ask for extension 1001:<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 32<br />
The actual frame is sent to the peer:<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
ENTITY IDENT : 00:0c:29:97:0b:98<br />
SHAREDKEY : [ 79 71 ..... f9 00 bc ]<br />
SIGNATURE : [ a1 b3 ..... 7a 5c 14 ]<br />
ENCDATA : [IV 302f4771ce6cae684c01631987a2e264] 4 encrypted blocks<br />
Some keep-in-contact ping-ack is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
The Answer from the lookup is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
ENCDATA : [IV 7212e969e4452c685dcecc777b15ea12] 6 encrypted blocks<br />
The decoded content of the received data:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
=== PBX 2 ===<br />
A DUNDi-lookup request is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.101:4520]<br />
ENTITY IDENT : 00:0c:29:97:0b:98<br />
SHAREDKEY : [ 79 71 ..... f9 00 bc ]<br />
SIGNATURE : [ a1 b3 ..... 7a 5c 14 ]<br />
ENCDATA : [IV 302f4771ce6cae684c01631987a2e264] 4 encrypted blocks<br />
The decoded content of the received package:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.101:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 32<br />
The requested number is not known, the other peer(s) are queried: (note the lowered TTL)<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520]<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.106:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:a7:e0:73<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 31<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.106:4520]<br />
ENTITY IDENT : 00:0c:29:a7:e0:73<br />
SHAREDKEY : [ c6 a3 ..... cf 77 b7 ]<br />
SIGNATURE : [ 9d 83 ..... 24 60 0d ]<br />
ENCDATA : [IV c99afc653712130a9cb4143122855940] 4 encrypted blocks<br />
Some acknowledgement on a keep-in-contact ping is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520]<br />
The answer on the lookup is received from PBX 3:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520]<br />
ENCDATA : [IV 30a7274590946f4c5261a311e9a33822] 6 encrypted blocks<br />
The decrypted content of the received packet.<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
The answer of the DUNDi-lookup is sent back to PBX 1:<br />
Tx-Frame Retry[No] -- OSeqno: 001 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 21146 DTrans: 28371 [192.168.1.106:4520] (Final)<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520]<br />
ENCDATA : [IV 7212e969e4452c685dcecc777b15ea12] 6 encrypted blocks<br />
<br />
<br />
=== PBX 3 ===<br />
Receive frame with DUNDi-lookup command:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.103:4520]<br />
ENTITY IDENT : 00:0c:29:a7:e0:73<br />
SHAREDKEY : [ c6 a3 ..... cf 77 b7 ]<br />
SIGNATURE : [ 9d 83 ..... 24 60 0d ]<br />
ENCDATA : [IV c99afc653712130a9cb4143122855940] 4 encrypted blocks<br />
The decoded data from the received frame:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.103:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:a7:e0:73<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 31<br />
Answer is sent back: ''"Yes I know this extension... it is ...."''<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520]<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
A keep-contact-ping is sent:<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520]<br />
ENCDATA : [IV 30a7274590946f4c5261a311e9a33822] 6 encrypted blocks<br />
... and received:<br />
Rx-Frame Retry[No] -- OSeqno: 001 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 21146 DTrans: 28371 [192.168.1.103:4520] (Final)<br />
There is an incomming call:<br />
recordingcheck|20070221-073234|1172061154.14: Inbound recording not enabled<br />
dialparties.agi: Starting New Dialparties.agi<br />
dialparties.agi: priority is 1<br />
dialparties.agi: Caller ID name is 'device' number is '1301'<br />
dialparties.agi: Methodology of ring is 'none'<br />
== CLI lookup ==<br />
Make sure you include the context (here: <tt>priv</tt>).<br />
When no context is given, the DUNDi lookup defaults to E.164.<br />
===1001@priv:===<br />
asterisk1*CLI> dundi lookup 1001@priv<br />
1. 0 IAX2/priv:ZUIkF+Wl0TuXtd13pK5UXQ@192.168.1.106/1001 (EXISTS|NOUNSLCTD|NOCOMUNSLTD)<br />
from 00:0c:29:d2:d8:ec, expires in 5 s<br />
DUNDi lookup completed in 89 ms<br />
<br />
<br />
===1301@priv:===<br />
asterisk1*CLI> dundi lookup 1301@priv<br />
1. 0 IAX2/priv:NbJdfOHodguANV0MOKuaQg@192.168.1.101/1301 (EXISTS|NOUNSLCTD|NOCOMUNSLTD)<br />
from 00:0c:29:97:0b:98, expires in 5 s<br />
DUNDi lookup completed in 52 ms<br />
<br />
===1601@priv:===<br />
asterisk1*CLI> dundi lookup 1601@priv<br />
1. 0 IAX2/priv:cZzQREFhaxEiS5w22f2Oag@192.168.1.103/1601 (EXISTS|NOUNSLCTD|NOCOMUNSLTD)<br />
from 00:0c:29:a7:e0:73, expires in 5 s<br />
DUNDi lookup completed in 44 ms</div>Gijshttps://wiki.td-er.nl/index.php?title=Asterisk_DUNDi_debug&diff=1999Asterisk DUNDi debug2007-02-20T15:32:30Z<p>Gijs: /* CLI lookup */</p>
<hr />
<div>When making a call from extension 1301 to 1001, the lookup has to pass 2 PBX's.<br />
<br />
==Situation==<br />
'''Misc:'''<br />
* <tt>TTL=32</tt><br />
* Expiration/<tt>cachetime</tt> = 5 seconds, to make sure results are not cached.<br />
* Context = <tt>priv</tt><br />
* Used DUNDi-advertise options: <tt>nounsolicited,nocomunsolicit,nopartial</tt><br />
<br />
'''Extensions:'''<br />
* 1'''3'''01 is connected to PBX'''1'''<br />
* 1'''6'''01 is connected to PBX'''2'''<br />
* 1'''0'''01 is connected to PBX'''3'''<br />
<br />
'''Peering:'''<br />
* PBX1 (<tt>192.168.1.101</tt>) peers with PBX2 (<tt>192.168.1.103</tt>) and vice-verse.<br />
* PBX2 (<tt>192.168.1.103</tt>) peers with PBX3 (<tt>192.168.1.106</tt>) and vice-verse.<br />
* PBX1 '''does not peer''' with PBX3 and vice-verse.<br />
<br />
<br />
In the CLI this shows as follows:<br />
<br />
'''PBX1''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (2 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX2''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:97:0b:98 192.168.1.101 (S) Symmetric Unavail OK (3 ms)<br />
00:0c:29:d2:d8:ec 192.168.1.106 (S) Symmetric Unavail OK (1 ms)<br />
2 dundi peers [2 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX3''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (1 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
<br />
For ext. 1301 to call 1001, all 3 PBX's schould participate in the lookup.<br />
<br />
== DUNDi Debug-info ==<br />
In Asterisk's CLI, you can get debug-info with the command <tt>dundi debug</tt>.<br />
To switch the debug off, enter <tt>dundi no debug</tt><br />
<br />
Each peer will stay in contact with its peers by sending some sort of ping-packets to eachother at regular intervals. Therefore always switch the debug-mode off before analysing the output.<br />
<br />
''N.B. large key's have been abbreviated for readability and are marked with "....."''<br />
=== PBX 1 ===<br />
Command received from Asterisk to ask for extension 1001:<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 32<br />
The actual frame is sent to the peer:<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
ENTITY IDENT : 00:0c:29:97:0b:98<br />
SHAREDKEY : [ 79 71 ..... f9 00 bc ]<br />
SIGNATURE : [ a1 b3 ..... 7a 5c 14 ]<br />
ENCDATA : [IV 302f4771ce6cae684c01631987a2e264] 4 encrypted blocks<br />
Some keep-in-contact ping-ack is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
The Answer from the lookup is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
ENCDATA : [IV 7212e969e4452c685dcecc777b15ea12] 6 encrypted blocks<br />
The decoded content of the received data:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
=== PBX 2 ===<br />
A DUNDi-lookup request is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.101:4520]<br />
ENTITY IDENT : 00:0c:29:97:0b:98<br />
SHAREDKEY : [ 79 71 ..... f9 00 bc ]<br />
SIGNATURE : [ a1 b3 ..... 7a 5c 14 ]<br />
ENCDATA : [IV 302f4771ce6cae684c01631987a2e264] 4 encrypted blocks<br />
The decoded content of the received package:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.101:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 32<br />
The requested number is not known, the other peer(s) are queried: (note the lowered TTL)<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520]<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.106:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:a7:e0:73<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 31<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.106:4520]<br />
ENTITY IDENT : 00:0c:29:a7:e0:73<br />
SHAREDKEY : [ c6 a3 ..... cf 77 b7 ]<br />
SIGNATURE : [ 9d 83 ..... 24 60 0d ]<br />
ENCDATA : [IV c99afc653712130a9cb4143122855940] 4 encrypted blocks<br />
Some acknowledgement on a keep-in-contact ping is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520]<br />
The answer on the lookup is received from PBX 3:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520]<br />
ENCDATA : [IV 30a7274590946f4c5261a311e9a33822] 6 encrypted blocks<br />
The decrypted content of the received packet.<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
The answer of the DUNDi-lookup is sent back to PBX 1:<br />
Tx-Frame Retry[No] -- OSeqno: 001 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 21146 DTrans: 28371 [192.168.1.106:4520] (Final)<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520]<br />
ENCDATA : [IV 7212e969e4452c685dcecc777b15ea12] 6 encrypted blocks<br />
<br />
<br />
=== PBX 3 ===<br />
Receive frame with DUNDi-lookup command:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.103:4520]<br />
ENTITY IDENT : 00:0c:29:a7:e0:73<br />
SHAREDKEY : [ c6 a3 ..... cf 77 b7 ]<br />
SIGNATURE : [ 9d 83 ..... 24 60 0d ]<br />
ENCDATA : [IV c99afc653712130a9cb4143122855940] 4 encrypted blocks<br />
The decoded data from the received frame:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.103:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:a7:e0:73<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 31<br />
Answer is sent back: ''"Yes I know this extension... it is ...."''<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520]<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
A keep-contact-ping is sent:<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520]<br />
ENCDATA : [IV 30a7274590946f4c5261a311e9a33822] 6 encrypted blocks<br />
... and received:<br />
Rx-Frame Retry[No] -- OSeqno: 001 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 21146 DTrans: 28371 [192.168.1.103:4520] (Final)<br />
There is an incomming call:<br />
recordingcheck|20070221-073234|1172061154.14: Inbound recording not enabled<br />
dialparties.agi: Starting New Dialparties.agi<br />
dialparties.agi: priority is 1<br />
dialparties.agi: Caller ID name is 'device' number is '1301'<br />
dialparties.agi: Methodology of ring is 'none'<br />
== CLI lookup ==<br />
===1001@priv:===<br />
asterisk1*CLI> dundi lookup 1001@priv<br />
1. 0 IAX2/priv:ZUIkF+Wl0TuXtd13pK5UXQ@192.168.1.106/1001 (EXISTS|NOUNSLCTD|NOCOMUNSLTD)<br />
from 00:0c:29:d2:d8:ec, expires in 5 s<br />
DUNDi lookup completed in 89 ms<br />
<br />
<br />
===1301@priv:===<br />
asterisk1*CLI> dundi lookup 1301@priv<br />
1. 0 IAX2/priv:NbJdfOHodguANV0MOKuaQg@192.168.1.101/1301 (EXISTS|NOUNSLCTD|NOCOMUNSLTD)<br />
from 00:0c:29:97:0b:98, expires in 5 s<br />
DUNDi lookup completed in 52 ms<br />
<br />
===1601@priv:===<br />
asterisk1*CLI> dundi lookup 1601@priv<br />
1. 0 IAX2/priv:cZzQREFhaxEiS5w22f2Oag@192.168.1.103/1601 (EXISTS|NOUNSLCTD|NOCOMUNSLTD)<br />
from 00:0c:29:a7:e0:73, expires in 5 s<br />
DUNDi lookup completed in 44 ms</div>Gijshttps://wiki.td-er.nl/index.php?title=Asterisk_DUNDi_debug&diff=1998Asterisk DUNDi debug2007-02-20T15:30:25Z<p>Gijs: /* Situation */</p>
<hr />
<div>When making a call from extension 1301 to 1001, the lookup has to pass 2 PBX's.<br />
<br />
==Situation==<br />
'''Misc:'''<br />
* <tt>TTL=32</tt><br />
* Expiration/<tt>cachetime</tt> = 5 seconds, to make sure results are not cached.<br />
* Context = <tt>priv</tt><br />
* Used DUNDi-advertise options: <tt>nounsolicited,nocomunsolicit,nopartial</tt><br />
<br />
'''Extensions:'''<br />
* 1'''3'''01 is connected to PBX'''1'''<br />
* 1'''6'''01 is connected to PBX'''2'''<br />
* 1'''0'''01 is connected to PBX'''3'''<br />
<br />
'''Peering:'''<br />
* PBX1 (<tt>192.168.1.101</tt>) peers with PBX2 (<tt>192.168.1.103</tt>) and vice-verse.<br />
* PBX2 (<tt>192.168.1.103</tt>) peers with PBX3 (<tt>192.168.1.106</tt>) and vice-verse.<br />
* PBX1 '''does not peer''' with PBX3 and vice-verse.<br />
<br />
<br />
In the CLI this shows as follows:<br />
<br />
'''PBX1''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (2 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX2''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:97:0b:98 192.168.1.101 (S) Symmetric Unavail OK (3 ms)<br />
00:0c:29:d2:d8:ec 192.168.1.106 (S) Symmetric Unavail OK (1 ms)<br />
2 dundi peers [2 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX3''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (1 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
<br />
For ext. 1301 to call 1001, all 3 PBX's schould participate in the lookup.<br />
<br />
== DUNDi Debug-info ==<br />
In Asterisk's CLI, you can get debug-info with the command <tt>dundi debug</tt>.<br />
To switch the debug off, enter <tt>dundi no debug</tt><br />
<br />
Each peer will stay in contact with its peers by sending some sort of ping-packets to eachother at regular intervals. Therefore always switch the debug-mode off before analysing the output.<br />
<br />
''N.B. large key's have been abbreviated for readability and are marked with "....."''<br />
=== PBX 1 ===<br />
Command received from Asterisk to ask for extension 1001:<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 32<br />
The actual frame is sent to the peer:<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
ENTITY IDENT : 00:0c:29:97:0b:98<br />
SHAREDKEY : [ 79 71 ..... f9 00 bc ]<br />
SIGNATURE : [ a1 b3 ..... 7a 5c 14 ]<br />
ENCDATA : [IV 302f4771ce6cae684c01631987a2e264] 4 encrypted blocks<br />
Some keep-in-contact ping-ack is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
The Answer from the lookup is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
ENCDATA : [IV 7212e969e4452c685dcecc777b15ea12] 6 encrypted blocks<br />
The decoded content of the received data:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
=== PBX 2 ===<br />
A DUNDi-lookup request is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.101:4520]<br />
ENTITY IDENT : 00:0c:29:97:0b:98<br />
SHAREDKEY : [ 79 71 ..... f9 00 bc ]<br />
SIGNATURE : [ a1 b3 ..... 7a 5c 14 ]<br />
ENCDATA : [IV 302f4771ce6cae684c01631987a2e264] 4 encrypted blocks<br />
The decoded content of the received package:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.101:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 32<br />
The requested number is not known, the other peer(s) are queried: (note the lowered TTL)<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520]<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.106:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:a7:e0:73<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 31<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.106:4520]<br />
ENTITY IDENT : 00:0c:29:a7:e0:73<br />
SHAREDKEY : [ c6 a3 ..... cf 77 b7 ]<br />
SIGNATURE : [ 9d 83 ..... 24 60 0d ]<br />
ENCDATA : [IV c99afc653712130a9cb4143122855940] 4 encrypted blocks<br />
Some acknowledgement on a keep-in-contact ping is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520]<br />
The answer on the lookup is received from PBX 3:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520]<br />
ENCDATA : [IV 30a7274590946f4c5261a311e9a33822] 6 encrypted blocks<br />
The decrypted content of the received packet.<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
The answer of the DUNDi-lookup is sent back to PBX 1:<br />
Tx-Frame Retry[No] -- OSeqno: 001 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 21146 DTrans: 28371 [192.168.1.106:4520] (Final)<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520]<br />
ENCDATA : [IV 7212e969e4452c685dcecc777b15ea12] 6 encrypted blocks<br />
<br />
<br />
=== PBX 3 ===<br />
Receive frame with DUNDi-lookup command:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.103:4520]<br />
ENTITY IDENT : 00:0c:29:a7:e0:73<br />
SHAREDKEY : [ c6 a3 ..... cf 77 b7 ]<br />
SIGNATURE : [ 9d 83 ..... 24 60 0d ]<br />
ENCDATA : [IV c99afc653712130a9cb4143122855940] 4 encrypted blocks<br />
The decoded data from the received frame:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.103:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:a7:e0:73<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 31<br />
Answer is sent back: ''"Yes I know this extension... it is ...."''<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520]<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
A keep-contact-ping is sent:<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520]<br />
ENCDATA : [IV 30a7274590946f4c5261a311e9a33822] 6 encrypted blocks<br />
... and received:<br />
Rx-Frame Retry[No] -- OSeqno: 001 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 21146 DTrans: 28371 [192.168.1.103:4520] (Final)<br />
There is an incomming call:<br />
recordingcheck|20070221-073234|1172061154.14: Inbound recording not enabled<br />
dialparties.agi: Starting New Dialparties.agi<br />
dialparties.agi: priority is 1<br />
dialparties.agi: Caller ID name is 'device' number is '1301'<br />
dialparties.agi: Methodology of ring is 'none'<br />
== CLI lookup ==<br />
'''1001@priv:'''<br />
asterisk1*CLI> dundi lookup 1001@priv<br />
1. 0 IAX2/priv:ZUIkF+Wl0TuXtd13pK5UXQ@192.168.1.106/1001 (EXISTS|NOUNSLCTD|NOCOMUNSLTD)<br />
from 00:0c:29:d2:d8:ec, expires in 5 s<br />
DUNDi lookup completed in 89 ms<br />
<br />
<br />
'''1301@priv:'''<br />
asterisk1*CLI> dundi lookup 1301@priv<br />
1. 0 IAX2/priv:NbJdfOHodguANV0MOKuaQg@192.168.1.101/1301 (EXISTS|NOUNSLCTD|NOCOMUNSLTD)<br />
from 00:0c:29:97:0b:98, expires in 5 s<br />
DUNDi lookup completed in 52 ms<br />
<br />
'''1601@priv:'''<br />
asterisk1*CLI> dundi lookup 1601@priv<br />
1. 0 IAX2/priv:cZzQREFhaxEiS5w22f2Oag@192.168.1.103/1601 (EXISTS|NOUNSLCTD|NOCOMUNSLTD)<br />
from 00:0c:29:a7:e0:73, expires in 5 s<br />
DUNDi lookup completed in 44 ms</div>Gijshttps://wiki.td-er.nl/index.php?title=Asterisk_DUNDi_debug&diff=1997Asterisk DUNDi debug2007-02-20T15:26:58Z<p>Gijs: </p>
<hr />
<div>When making a call from extension 1301 to 1001, the lookup has to pass 2 PBX's.<br />
<br />
==Situation==<br />
'''Extensions:'''<br />
* 1'''3'''01 is connected to PBX'''1'''<br />
* 1'''6'''01 is connected to PBX'''2'''<br />
* 1'''0'''01 is connected to PBX'''3'''<br />
<br />
'''Peering:'''<br />
* PBX1 (<tt>192.168.1.101</tt>) peers with PBX2 (<tt>192.168.1.103</tt>) and vice-verse.<br />
* PBX2 (<tt>192.168.1.103</tt>) peers with PBX3 (<tt>192.168.1.106</tt>) and vice-verse.<br />
* PBX1 '''does not peer''' with PBX3 and vice-verse.<br />
<br />
'''Misc:'''<br />
* <tt>TTL=32</tt><br />
* Expiration = 5 seconds, to make sure results are not cached.<br />
* Context = <tt>priv</tt><br />
<br />
In the CLI this shows as follows:<br />
<br />
'''PBX1''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (2 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX2''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:97:0b:98 192.168.1.101 (S) Symmetric Unavail OK (3 ms)<br />
00:0c:29:d2:d8:ec 192.168.1.106 (S) Symmetric Unavail OK (1 ms)<br />
2 dundi peers [2 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX3''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (1 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
<br />
For ext. 1301 to call 1001, all 3 PBX's schould participate in the lookup.<br />
<br />
== DUNDi Debug-info ==<br />
In Asterisk's CLI, you can get debug-info with the command <tt>dundi debug</tt>.<br />
To switch the debug off, enter <tt>dundi no debug</tt><br />
<br />
Each peer will stay in contact with its peers by sending some sort of ping-packets to eachother at regular intervals. Therefore always switch the debug-mode off before analysing the output.<br />
<br />
''N.B. large key's have been abbreviated for readability and are marked with "....."''<br />
=== PBX 1 ===<br />
Command received from Asterisk to ask for extension 1001:<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 32<br />
The actual frame is sent to the peer:<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
ENTITY IDENT : 00:0c:29:97:0b:98<br />
SHAREDKEY : [ 79 71 ..... f9 00 bc ]<br />
SIGNATURE : [ a1 b3 ..... 7a 5c 14 ]<br />
ENCDATA : [IV 302f4771ce6cae684c01631987a2e264] 4 encrypted blocks<br />
Some keep-in-contact ping-ack is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
The Answer from the lookup is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
ENCDATA : [IV 7212e969e4452c685dcecc777b15ea12] 6 encrypted blocks<br />
The decoded content of the received data:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
=== PBX 2 ===<br />
A DUNDi-lookup request is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.101:4520]<br />
ENTITY IDENT : 00:0c:29:97:0b:98<br />
SHAREDKEY : [ 79 71 ..... f9 00 bc ]<br />
SIGNATURE : [ a1 b3 ..... 7a 5c 14 ]<br />
ENCDATA : [IV 302f4771ce6cae684c01631987a2e264] 4 encrypted blocks<br />
The decoded content of the received package:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.101:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 32<br />
The requested number is not known, the other peer(s) are queried: (note the lowered TTL)<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520]<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.106:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:a7:e0:73<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 31<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.106:4520]<br />
ENTITY IDENT : 00:0c:29:a7:e0:73<br />
SHAREDKEY : [ c6 a3 ..... cf 77 b7 ]<br />
SIGNATURE : [ 9d 83 ..... 24 60 0d ]<br />
ENCDATA : [IV c99afc653712130a9cb4143122855940] 4 encrypted blocks<br />
Some acknowledgement on a keep-in-contact ping is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520]<br />
The answer on the lookup is received from PBX 3:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520]<br />
ENCDATA : [IV 30a7274590946f4c5261a311e9a33822] 6 encrypted blocks<br />
The decrypted content of the received packet.<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
The answer of the DUNDi-lookup is sent back to PBX 1:<br />
Tx-Frame Retry[No] -- OSeqno: 001 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 21146 DTrans: 28371 [192.168.1.106:4520] (Final)<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520]<br />
ENCDATA : [IV 7212e969e4452c685dcecc777b15ea12] 6 encrypted blocks<br />
<br />
<br />
=== PBX 3 ===<br />
Receive frame with DUNDi-lookup command:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.103:4520]<br />
ENTITY IDENT : 00:0c:29:a7:e0:73<br />
SHAREDKEY : [ c6 a3 ..... cf 77 b7 ]<br />
SIGNATURE : [ 9d 83 ..... 24 60 0d ]<br />
ENCDATA : [IV c99afc653712130a9cb4143122855940] 4 encrypted blocks<br />
The decoded data from the received frame:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.103:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:a7:e0:73<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 31<br />
Answer is sent back: ''"Yes I know this extension... it is ...."''<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520]<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
A keep-contact-ping is sent:<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520]<br />
ENCDATA : [IV 30a7274590946f4c5261a311e9a33822] 6 encrypted blocks<br />
... and received:<br />
Rx-Frame Retry[No] -- OSeqno: 001 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 21146 DTrans: 28371 [192.168.1.103:4520] (Final)<br />
There is an incomming call:<br />
recordingcheck|20070221-073234|1172061154.14: Inbound recording not enabled<br />
dialparties.agi: Starting New Dialparties.agi<br />
dialparties.agi: priority is 1<br />
dialparties.agi: Caller ID name is 'device' number is '1301'<br />
dialparties.agi: Methodology of ring is 'none'<br />
== CLI lookup ==<br />
'''1001@priv:'''<br />
asterisk1*CLI> dundi lookup 1001@priv<br />
1. 0 IAX2/priv:ZUIkF+Wl0TuXtd13pK5UXQ@192.168.1.106/1001 (EXISTS|NOUNSLCTD|NOCOMUNSLTD)<br />
from 00:0c:29:d2:d8:ec, expires in 5 s<br />
DUNDi lookup completed in 89 ms<br />
<br />
<br />
'''1301@priv:'''<br />
asterisk1*CLI> dundi lookup 1301@priv<br />
1. 0 IAX2/priv:NbJdfOHodguANV0MOKuaQg@192.168.1.101/1301 (EXISTS|NOUNSLCTD|NOCOMUNSLTD)<br />
from 00:0c:29:97:0b:98, expires in 5 s<br />
DUNDi lookup completed in 52 ms<br />
<br />
'''1601@priv:'''<br />
asterisk1*CLI> dundi lookup 1601@priv<br />
1. 0 IAX2/priv:cZzQREFhaxEiS5w22f2Oag@192.168.1.103/1601 (EXISTS|NOUNSLCTD|NOCOMUNSLTD)<br />
from 00:0c:29:a7:e0:73, expires in 5 s<br />
DUNDi lookup completed in 44 ms</div>Gijshttps://wiki.td-er.nl/index.php?title=Asterisk_DUNDi_debug&diff=1996Asterisk DUNDi debug2007-02-20T15:23:31Z<p>Gijs: /* Situation */</p>
<hr />
<div>When making a call from extension 1301 to 1001, the lookup has to pass 2 PBX's.<br />
<br />
==Situation==<br />
'''Extensions:'''<br />
* 1'''3'''01 is connected to PBX'''1'''<br />
* 1'''6'''01 is connected to PBX'''2'''<br />
* 1'''0'''01 is connected to PBX'''3'''<br />
<br />
'''Peering:'''<br />
* PBX1 (<tt>192.168.1.101</tt>) peers with PBX2 (<tt>192.168.1.103</tt>) and vice-verse.<br />
* PBX2 (<tt>192.168.1.103</tt>) peers with PBX3 (<tt>192.168.1.106</tt>) and vice-verse.<br />
* PBX1 '''does not peer''' with PBX3 and vice-verse.<br />
<br />
'''Misc:'''<br />
* <tt>TTL=32</tt><br />
* Expiration = 5 seconds, to make sure results are not cached.<br />
* Context = <tt>priv</tt><br />
<br />
In the CLI this shows as follows:<br />
<br />
'''PBX1''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (2 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX2''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:97:0b:98 192.168.1.101 (S) Symmetric Unavail OK (3 ms)<br />
00:0c:29:d2:d8:ec 192.168.1.106 (S) Symmetric Unavail OK (1 ms)<br />
2 dundi peers [2 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX3''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (1 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
<br />
For ext. 1301 to call 1001, all 3 PBX's schould participate in the lookup.<br />
<br />
== DUNDi Debug-info ==<br />
In Asterisk's CLI, you can get debug-info with the command <tt>dundi debug</tt>.<br />
To switch the debug off, enter <tt>dundi no debug</tt><br />
<br />
Each peer will stay in contact with its peers by sending some sort of ping-packets to eachother at regular intervals. Therefore always switch the debug-mode off before analysing the output.<br />
<br />
''N.B. large key's have been abbreviated for readability and are marked with "....."''<br />
=== PBX 1 ===<br />
Command received from Asterisk to ask for extension 1001:<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 32<br />
The actual frame is sent to the peer:<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
ENTITY IDENT : 00:0c:29:97:0b:98<br />
SHAREDKEY : [ 79 71 ..... f9 00 bc ]<br />
SIGNATURE : [ a1 b3 ..... 7a 5c 14 ]<br />
ENCDATA : [IV 302f4771ce6cae684c01631987a2e264] 4 encrypted blocks<br />
Some keep-in-contact ping-ack is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
The Answer from the lookup is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
ENCDATA : [IV 7212e969e4452c685dcecc777b15ea12] 6 encrypted blocks<br />
The decoded content of the received data:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
=== PBX 2 ===<br />
A DUNDi-lookup request is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.101:4520]<br />
ENTITY IDENT : 00:0c:29:97:0b:98<br />
SHAREDKEY : [ 79 71 ..... f9 00 bc ]<br />
SIGNATURE : [ a1 b3 ..... 7a 5c 14 ]<br />
ENCDATA : [IV 302f4771ce6cae684c01631987a2e264] 4 encrypted blocks<br />
The decoded content of the received package:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.101:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 32<br />
The requested number is not known, the other peer(s) are queried: (note the lowered TTL)<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520]<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.106:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:a7:e0:73<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 31<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.106:4520]<br />
ENTITY IDENT : 00:0c:29:a7:e0:73<br />
SHAREDKEY : [ c6 a3 ..... cf 77 b7 ]<br />
SIGNATURE : [ 9d 83 ..... 24 60 0d ]<br />
ENCDATA : [IV c99afc653712130a9cb4143122855940] 4 encrypted blocks<br />
Some acknowledgement on a keep-in-contact ping is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520]<br />
The answer on the lookup is received from PBX 3:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520]<br />
ENCDATA : [IV 30a7274590946f4c5261a311e9a33822] 6 encrypted blocks<br />
The decrypted content of the received packet.<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
The answer of the DUNDi-lookup is sent back to PBX 1:<br />
Tx-Frame Retry[No] -- OSeqno: 001 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 21146 DTrans: 28371 [192.168.1.106:4520] (Final)<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520]<br />
ENCDATA : [IV 7212e969e4452c685dcecc777b15ea12] 6 encrypted blocks<br />
<br />
<br />
=== PBX 3 ===<br />
Receive frame with DUNDi-lookup command:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.103:4520]<br />
ENTITY IDENT : 00:0c:29:a7:e0:73<br />
SHAREDKEY : [ c6 a3 ..... cf 77 b7 ]<br />
SIGNATURE : [ 9d 83 ..... 24 60 0d ]<br />
ENCDATA : [IV c99afc653712130a9cb4143122855940] 4 encrypted blocks<br />
The decoded data from the received frame:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.103:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:a7:e0:73<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 31<br />
Answer is sent back: ''"Yes I know this extension... it is ...."''<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520]<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
A keep-contact-ping is sent:<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520]<br />
ENCDATA : [IV 30a7274590946f4c5261a311e9a33822] 6 encrypted blocks<br />
... and received:<br />
Rx-Frame Retry[No] -- OSeqno: 001 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 21146 DTrans: 28371 [192.168.1.103:4520] (Final)<br />
There is an incomming call:<br />
recordingcheck|20070221-073234|1172061154.14: Inbound recording not enabled<br />
dialparties.agi: Starting New Dialparties.agi<br />
dialparties.agi: priority is 1<br />
dialparties.agi: Caller ID name is 'device' number is '1301'<br />
dialparties.agi: Methodology of ring is 'none'</div>Gijshttps://wiki.td-er.nl/index.php?title=Asterisk_DUNDi_debug&diff=1995Asterisk DUNDi debug2007-02-20T15:21:01Z<p>Gijs: /* DUNDi Debug-info */</p>
<hr />
<div>When making a call from extension 1301 to 1001, the lookup has to pass 2 PBX's.<br />
<br />
==Situation==<br />
'''Extensions:'''<br />
* 1'''3'''01 is connected to PBX'''1'''<br />
* 1'''6'''01 is connected to PBX'''2'''<br />
* 1'''0'''01 is connected to PBX'''3'''<br />
<br />
'''Peering:'''<br />
* PBX1 (<tt>192.168.1.101</tt>) peers with PBX2 (<tt>192.168.1.103</tt>) and vice-verse.<br />
* PBX2 (<tt>192.168.1.103</tt>) peers with PBX3 (<tt>192.168.1.106</tt>) and vice-verse.<br />
* PBX1 '''does not peer''' with PBX3 and vice-verse.<br />
<br />
In the CLI this shows as follows:<br />
<br />
'''PBX1''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (2 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX2''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:97:0b:98 192.168.1.101 (S) Symmetric Unavail OK (3 ms)<br />
00:0c:29:d2:d8:ec 192.168.1.106 (S) Symmetric Unavail OK (1 ms)<br />
2 dundi peers [2 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX3''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (1 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
<br />
For ext. 1301 to call 1001, all 3 PBX's schould participate in the lookup.<br />
<br />
== DUNDi Debug-info ==<br />
In Asterisk's CLI, you can get debug-info with the command <tt>dundi debug</tt>.<br />
To switch the debug off, enter <tt>dundi no debug</tt><br />
<br />
Each peer will stay in contact with its peers by sending some sort of ping-packets to eachother at regular intervals. Therefore always switch the debug-mode off before analysing the output.<br />
<br />
''N.B. large key's have been abbreviated for readability and are marked with "....."''<br />
=== PBX 1 ===<br />
Command received from Asterisk to ask for extension 1001:<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 32<br />
The actual frame is sent to the peer:<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
ENTITY IDENT : 00:0c:29:97:0b:98<br />
SHAREDKEY : [ 79 71 ..... f9 00 bc ]<br />
SIGNATURE : [ a1 b3 ..... 7a 5c 14 ]<br />
ENCDATA : [IV 302f4771ce6cae684c01631987a2e264] 4 encrypted blocks<br />
Some keep-in-contact ping-ack is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
The Answer from the lookup is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
ENCDATA : [IV 7212e969e4452c685dcecc777b15ea12] 6 encrypted blocks<br />
The decoded content of the received data:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
=== PBX 2 ===<br />
A DUNDi-lookup request is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.101:4520]<br />
ENTITY IDENT : 00:0c:29:97:0b:98<br />
SHAREDKEY : [ 79 71 ..... f9 00 bc ]<br />
SIGNATURE : [ a1 b3 ..... 7a 5c 14 ]<br />
ENCDATA : [IV 302f4771ce6cae684c01631987a2e264] 4 encrypted blocks<br />
The decoded content of the received package:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.101:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 32<br />
The requested number is not known, the other peer(s) are queried: (note the lowered TTL)<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520]<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.106:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:a7:e0:73<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 31<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.106:4520]<br />
ENTITY IDENT : 00:0c:29:a7:e0:73<br />
SHAREDKEY : [ c6 a3 ..... cf 77 b7 ]<br />
SIGNATURE : [ 9d 83 ..... 24 60 0d ]<br />
ENCDATA : [IV c99afc653712130a9cb4143122855940] 4 encrypted blocks<br />
Some acknowledgement on a keep-in-contact ping is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520]<br />
The answer on the lookup is received from PBX 3:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520]<br />
ENCDATA : [IV 30a7274590946f4c5261a311e9a33822] 6 encrypted blocks<br />
The decrypted content of the received packet.<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
The answer of the DUNDi-lookup is sent back to PBX 1:<br />
Tx-Frame Retry[No] -- OSeqno: 001 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 21146 DTrans: 28371 [192.168.1.106:4520] (Final)<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520]<br />
ENCDATA : [IV 7212e969e4452c685dcecc777b15ea12] 6 encrypted blocks<br />
<br />
<br />
=== PBX 3 ===<br />
Receive frame with DUNDi-lookup command:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.103:4520]<br />
ENTITY IDENT : 00:0c:29:a7:e0:73<br />
SHAREDKEY : [ c6 a3 ..... cf 77 b7 ]<br />
SIGNATURE : [ 9d 83 ..... 24 60 0d ]<br />
ENCDATA : [IV c99afc653712130a9cb4143122855940] 4 encrypted blocks<br />
The decoded data from the received frame:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.103:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:a7:e0:73<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 31<br />
Answer is sent back: ''"Yes I know this extension... it is ...."''<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520]<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
A keep-contact-ping is sent:<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520]<br />
ENCDATA : [IV 30a7274590946f4c5261a311e9a33822] 6 encrypted blocks<br />
... and received:<br />
Rx-Frame Retry[No] -- OSeqno: 001 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 21146 DTrans: 28371 [192.168.1.103:4520] (Final)<br />
There is an incomming call:<br />
recordingcheck|20070221-073234|1172061154.14: Inbound recording not enabled<br />
dialparties.agi: Starting New Dialparties.agi<br />
dialparties.agi: priority is 1<br />
dialparties.agi: Caller ID name is 'device' number is '1301'<br />
dialparties.agi: Methodology of ring is 'none'</div>Gijshttps://wiki.td-er.nl/index.php?title=Asterisk_DUNDi_debug&diff=1994Asterisk DUNDi debug2007-02-20T15:09:59Z<p>Gijs: /* PBX 1 */</p>
<hr />
<div>When making a call from extension 1301 to 1001, the lookup has to pass 2 PBX's.<br />
<br />
==Situation==<br />
'''Extensions:'''<br />
* 1'''3'''01 is connected to PBX'''1'''<br />
* 1'''6'''01 is connected to PBX'''2'''<br />
* 1'''0'''01 is connected to PBX'''3'''<br />
<br />
'''Peering:'''<br />
* PBX1 (<tt>192.168.1.101</tt>) peers with PBX2 (<tt>192.168.1.103</tt>) and vice-verse.<br />
* PBX2 (<tt>192.168.1.103</tt>) peers with PBX3 (<tt>192.168.1.106</tt>) and vice-verse.<br />
* PBX1 '''does not peer''' with PBX3 and vice-verse.<br />
<br />
In the CLI this shows as follows:<br />
<br />
'''PBX1''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (2 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX2''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:97:0b:98 192.168.1.101 (S) Symmetric Unavail OK (3 ms)<br />
00:0c:29:d2:d8:ec 192.168.1.106 (S) Symmetric Unavail OK (1 ms)<br />
2 dundi peers [2 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX3''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (1 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
<br />
For ext. 1301 to call 1001, all 3 PBX's schould participate in the lookup.<br />
<br />
== DUNDi Debug-info ==<br />
In Asterisk's CLI, you can get debug-info with the command <tt>dundi debug</tt>.<br />
To switch the debug off, enter <tt>dundi no debug</tt><br />
<br />
Each peer will stay in contact with its peers by sending some sort of ping-packets to eachother at regular intervals. Therefore always switch the debug-mode off before analysing the output.<br />
<br />
=== PBX 1 ===<br />
Command received from Asterisk to ask for extension 1001:<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 32<br />
The actual frame is sent to the peer:<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
ENTITY IDENT : 00:0c:29:97:0b:98<br />
SHAREDKEY : [ 79 71 ..... f9 00 bc ]<br />
SIGNATURE : [ a1 b3 ..... 7a 5c 14 ]<br />
ENCDATA : [IV 302f4771ce6cae684c01631987a2e264] 4 encrypted blocks<br />
Some keep-in-contact ping-ack is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
The Answer from the lookup is received:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
ENCDATA : [IV 7212e969e4452c685dcecc777b15ea12] 6 encrypted blocks<br />
The decoded content of the received data:<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
=== PBX 2 ===<br />
asterisk1*CLI> dundi debug<br />
DUNDi Debugging Enabled<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.101:4520]<br />
ENTITY IDENT : 00:0c:29:97:0b:98<br />
SHAREDKEY : [ 79 71 ..... f9 00 bc ]<br />
SIGNATURE : [ a1 b3 ..... 7a 5c 14 ]<br />
ENCDATA : [IV 302f4771ce6cae684c01631987a2e264] 4 encrypted blocks<br />
<br />
<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.101:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 32<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520]<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.106:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:a7:e0:73<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 31<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.106:4520]<br />
ENTITY IDENT : 00:0c:29:a7:e0:73<br />
SHAREDKEY : [ c6 a3 ..... cf 77 b7 ]<br />
SIGNATURE : [ 9d 83 ..... 24 60 0d ]<br />
ENCDATA : [IV c99afc653712130a9cb4143122855940] 4 encrypted blocks<br />
<br />
<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520]<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520]<br />
ENCDATA : [IV 30a7274590946f4c5261a311e9a33822] 6 encrypted blocks<br />
<br />
<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 001 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 21146 DTrans: 28371 [192.168.1.106:4520] (Final)<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520]<br />
ENCDATA : [IV 7212e969e4452c685dcecc777b15ea12] 6 encrypted blocks<br />
<br />
<br />
=== PBX 3 ===<br />
Receive frame with DUNDi-lookup command:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.103:4520]<br />
ENTITY IDENT : 00:0c:29:a7:e0:73<br />
SHAREDKEY : [ c6 a3 ..... cf 77 b7 ]<br />
SIGNATURE : [ 9d 83 ..... 24 60 0d ]<br />
ENCDATA : [IV c99afc653712130a9cb4143122855940] 4 encrypted blocks<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.103:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:a7:e0:73<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 31<br />
Answer is sent back: ''"Yes I know this extension... it is ...."''<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520]<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
A keep-contact-ping is sent:<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520]<br />
ENCDATA : [IV 30a7274590946f4c5261a311e9a33822] 6 encrypted blocks<br />
... and received:<br />
Rx-Frame Retry[No] -- OSeqno: 001 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 21146 DTrans: 28371 [192.168.1.103:4520] (Final)<br />
There is an incomming call:<br />
recordingcheck|20070221-073234|1172061154.14: Inbound recording not enabled<br />
dialparties.agi: Starting New Dialparties.agi<br />
dialparties.agi: priority is 1<br />
dialparties.agi: Caller ID name is 'device' number is '1301'<br />
dialparties.agi: Methodology of ring is 'none'</div>Gijshttps://wiki.td-er.nl/index.php?title=Asterisk_DUNDi_debug&diff=1993Asterisk DUNDi debug2007-02-20T15:05:57Z<p>Gijs: /* PBX 3 */</p>
<hr />
<div>When making a call from extension 1301 to 1001, the lookup has to pass 2 PBX's.<br />
<br />
==Situation==<br />
'''Extensions:'''<br />
* 1'''3'''01 is connected to PBX'''1'''<br />
* 1'''6'''01 is connected to PBX'''2'''<br />
* 1'''0'''01 is connected to PBX'''3'''<br />
<br />
'''Peering:'''<br />
* PBX1 (<tt>192.168.1.101</tt>) peers with PBX2 (<tt>192.168.1.103</tt>) and vice-verse.<br />
* PBX2 (<tt>192.168.1.103</tt>) peers with PBX3 (<tt>192.168.1.106</tt>) and vice-verse.<br />
* PBX1 '''does not peer''' with PBX3 and vice-verse.<br />
<br />
In the CLI this shows as follows:<br />
<br />
'''PBX1''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (2 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX2''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:97:0b:98 192.168.1.101 (S) Symmetric Unavail OK (3 ms)<br />
00:0c:29:d2:d8:ec 192.168.1.106 (S) Symmetric Unavail OK (1 ms)<br />
2 dundi peers [2 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX3''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (1 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
<br />
For ext. 1301 to call 1001, all 3 PBX's schould participate in the lookup.<br />
<br />
== DUNDi Debug-info ==<br />
In Asterisk's CLI, you can get debug-info with the command <tt>dundi debug</tt>.<br />
To switch the debug off, enter <tt>dundi no debug</tt><br />
<br />
Each peer will stay in contact with its peers by sending some sort of ping-packets to eachother at regular intervals. Therefore always switch the debug-mode off before analysing the output.<br />
<br />
=== PBX 1 ===<br />
asterisk1*CLI> dundi debug<br />
DUNDi Debugging Enabled<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 32<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
ENTITY IDENT : 00:0c:29:97:0b:98<br />
SHAREDKEY : [ 79 71 ..... f9 00 bc ]<br />
SIGNATURE : [ a1 b3 ..... 7a 5c 14 ]<br />
ENCDATA : [IV 302f4771ce6cae684c01631987a2e264] 4 encrypted blocks<br />
<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
ENCDATA : [IV 7212e969e4452c685dcecc777b15ea12] 6 encrypted blocks<br />
<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
<br />
=== PBX 2 ===<br />
asterisk1*CLI> dundi debug<br />
DUNDi Debugging Enabled<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.101:4520]<br />
ENTITY IDENT : 00:0c:29:97:0b:98<br />
SHAREDKEY : [ 79 71 ..... f9 00 bc ]<br />
SIGNATURE : [ a1 b3 ..... 7a 5c 14 ]<br />
ENCDATA : [IV 302f4771ce6cae684c01631987a2e264] 4 encrypted blocks<br />
<br />
<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.101:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 32<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520]<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.106:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:a7:e0:73<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 31<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.106:4520]<br />
ENTITY IDENT : 00:0c:29:a7:e0:73<br />
SHAREDKEY : [ c6 a3 ..... cf 77 b7 ]<br />
SIGNATURE : [ 9d 83 ..... 24 60 0d ]<br />
ENCDATA : [IV c99afc653712130a9cb4143122855940] 4 encrypted blocks<br />
<br />
<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520]<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520]<br />
ENCDATA : [IV 30a7274590946f4c5261a311e9a33822] 6 encrypted blocks<br />
<br />
<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 001 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 21146 DTrans: 28371 [192.168.1.106:4520] (Final)<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520]<br />
ENCDATA : [IV 7212e969e4452c685dcecc777b15ea12] 6 encrypted blocks<br />
<br />
<br />
=== PBX 3 ===<br />
Receive frame with DUNDi-lookup command:<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.103:4520]<br />
ENTITY IDENT : 00:0c:29:a7:e0:73<br />
SHAREDKEY : [ c6 a3 ..... cf 77 b7 ]<br />
SIGNATURE : [ 9d 83 ..... 24 60 0d ]<br />
ENCDATA : [IV c99afc653712130a9cb4143122855940] 4 encrypted blocks<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.103:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:a7:e0:73<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 31<br />
Answer is sent back: ''"Yes I know this extension... it is ...."''<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520]<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
A keep-contact-ping is sent:<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.103:4520]<br />
ENCDATA : [IV 30a7274590946f4c5261a311e9a33822] 6 encrypted blocks<br />
... and received:<br />
Rx-Frame Retry[No] -- OSeqno: 001 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 21146 DTrans: 28371 [192.168.1.103:4520] (Final)<br />
There is an incomming call:<br />
recordingcheck|20070221-073234|1172061154.14: Inbound recording not enabled<br />
dialparties.agi: Starting New Dialparties.agi<br />
dialparties.agi: priority is 1<br />
dialparties.agi: Caller ID name is 'device' number is '1301'<br />
dialparties.agi: Methodology of ring is 'none'</div>Gijshttps://wiki.td-er.nl/index.php?title=Asterisk_DUNDi_debug&diff=1992Asterisk DUNDi debug2007-02-20T14:59:18Z<p>Gijs: /* PBX 2 */</p>
<hr />
<div>When making a call from extension 1301 to 1001, the lookup has to pass 2 PBX's.<br />
<br />
==Situation==<br />
'''Extensions:'''<br />
* 1'''3'''01 is connected to PBX'''1'''<br />
* 1'''6'''01 is connected to PBX'''2'''<br />
* 1'''0'''01 is connected to PBX'''3'''<br />
<br />
'''Peering:'''<br />
* PBX1 (<tt>192.168.1.101</tt>) peers with PBX2 (<tt>192.168.1.103</tt>) and vice-verse.<br />
* PBX2 (<tt>192.168.1.103</tt>) peers with PBX3 (<tt>192.168.1.106</tt>) and vice-verse.<br />
* PBX1 '''does not peer''' with PBX3 and vice-verse.<br />
<br />
In the CLI this shows as follows:<br />
<br />
'''PBX1''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (2 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX2''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:97:0b:98 192.168.1.101 (S) Symmetric Unavail OK (3 ms)<br />
00:0c:29:d2:d8:ec 192.168.1.106 (S) Symmetric Unavail OK (1 ms)<br />
2 dundi peers [2 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX3''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (1 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
<br />
For ext. 1301 to call 1001, all 3 PBX's schould participate in the lookup.<br />
<br />
== DUNDi Debug-info ==<br />
In Asterisk's CLI, you can get debug-info with the command <tt>dundi debug</tt>.<br />
To switch the debug off, enter <tt>dundi no debug</tt><br />
<br />
Each peer will stay in contact with its peers by sending some sort of ping-packets to eachother at regular intervals. Therefore always switch the debug-mode off before analysing the output.<br />
<br />
=== PBX 1 ===<br />
asterisk1*CLI> dundi debug<br />
DUNDi Debugging Enabled<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 32<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
ENTITY IDENT : 00:0c:29:97:0b:98<br />
SHAREDKEY : [ 79 71 ..... f9 00 bc ]<br />
SIGNATURE : [ a1 b3 ..... 7a 5c 14 ]<br />
ENCDATA : [IV 302f4771ce6cae684c01631987a2e264] 4 encrypted blocks<br />
<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
ENCDATA : [IV 7212e969e4452c685dcecc777b15ea12] 6 encrypted blocks<br />
<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
<br />
=== PBX 2 ===<br />
asterisk1*CLI> dundi debug<br />
DUNDi Debugging Enabled<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.101:4520]<br />
ENTITY IDENT : 00:0c:29:97:0b:98<br />
SHAREDKEY : [ 79 71 ..... f9 00 bc ]<br />
SIGNATURE : [ a1 b3 ..... 7a 5c 14 ]<br />
ENCDATA : [IV 302f4771ce6cae684c01631987a2e264] 4 encrypted blocks<br />
<br />
<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.101:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 32<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520]<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.106:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:a7:e0:73<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 31<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 21146 DTrans: 00000 [192.168.1.106:4520]<br />
ENTITY IDENT : 00:0c:29:a7:e0:73<br />
SHAREDKEY : [ c6 a3 ..... cf 77 b7 ]<br />
SIGNATURE : [ 9d 83 ..... 24 60 0d ]<br />
ENCDATA : [IV c99afc653712130a9cb4143122855940] 4 encrypted blocks<br />
<br />
<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520]<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520]<br />
ENCDATA : [IV 30a7274590946f4c5261a311e9a33822] 6 encrypted blocks<br />
<br />
<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 28371 DTrans: 21146 [192.168.1.106:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 001 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 21146 DTrans: 28371 [192.168.1.106:4520] (Final)<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.101:4520]<br />
ENCDATA : [IV 7212e969e4452c685dcecc777b15ea12] 6 encrypted blocks<br />
<br />
<br />
=== PBX 3 ===</div>Gijshttps://wiki.td-er.nl/index.php?title=Asterisk_DUNDi_debug&diff=1991Asterisk DUNDi debug2007-02-20T14:55:18Z<p>Gijs: /* DUNDi Debug-info */</p>
<hr />
<div>When making a call from extension 1301 to 1001, the lookup has to pass 2 PBX's.<br />
<br />
==Situation==<br />
'''Extensions:'''<br />
* 1'''3'''01 is connected to PBX'''1'''<br />
* 1'''6'''01 is connected to PBX'''2'''<br />
* 1'''0'''01 is connected to PBX'''3'''<br />
<br />
'''Peering:'''<br />
* PBX1 (<tt>192.168.1.101</tt>) peers with PBX2 (<tt>192.168.1.103</tt>) and vice-verse.<br />
* PBX2 (<tt>192.168.1.103</tt>) peers with PBX3 (<tt>192.168.1.106</tt>) and vice-verse.<br />
* PBX1 '''does not peer''' with PBX3 and vice-verse.<br />
<br />
In the CLI this shows as follows:<br />
<br />
'''PBX1''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (2 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX2''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:97:0b:98 192.168.1.101 (S) Symmetric Unavail OK (3 ms)<br />
00:0c:29:d2:d8:ec 192.168.1.106 (S) Symmetric Unavail OK (1 ms)<br />
2 dundi peers [2 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX3''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (1 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
<br />
For ext. 1301 to call 1001, all 3 PBX's schould participate in the lookup.<br />
<br />
== DUNDi Debug-info ==<br />
In Asterisk's CLI, you can get debug-info with the command <tt>dundi debug</tt>.<br />
To switch the debug off, enter <tt>dundi no debug</tt><br />
<br />
Each peer will stay in contact with its peers by sending some sort of ping-packets to eachother at regular intervals. Therefore always switch the debug-mode off before analysing the output.<br />
<br />
=== PBX 1 ===<br />
asterisk1*CLI> dundi debug<br />
DUNDi Debugging Enabled<br />
ETx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: DPDISCOVER (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
VERSION : 1<br />
DIRECT EID : 00:0c:29:97:0b:98<br />
CALLED NUMBER : 1001<br />
CALLED CONTEXT : priv<br />
TTL : 32<br />
<br />
Tx-Frame Retry[No] -- OSeqno: 000 ISeqno: 000 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 14133 DTrans: 00000 [192.168.1.103:4520]<br />
ENTITY IDENT : 00:0c:29:97:0b:98<br />
SHAREDKEY : [ 79 71 ..... f9 00 bc ]<br />
SIGNATURE : [ a1 b3 ..... 7a 5c 14 ]<br />
ENCDATA : [IV 302f4771ce6cae684c01631987a2e264] 4 encrypted blocks<br />
<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ACK (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
Rx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: ENCRYPT (Command)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520]<br />
ENCDATA : [IV 7212e969e4452c685dcecc777b15ea12] 6 encrypted blocks<br />
<br />
Erx-Frame Retry[No] -- OSeqno: 000 ISeqno: 001 Type: DPRESPONSE (Response)<br />
Flags: 00 STrans: 18399 DTrans: 14133 [192.168.1.103:4520] (Final)<br />
ANSWER : [EXISTS|NOUNSLCTD|NOCOMUNSLTD] 0 <IAX/priv:LA.....Ucw@192.168.1.106/1001> from [00:0c:29:d2:d8:ec]<br />
HINT : [UNAFFECTED]<br />
EXPIRATION : 5<br />
<br />
<br />
=== PBX 2 ===</div>Gijshttps://wiki.td-er.nl/index.php?title=Asterisk_DUNDi_debug&diff=1990Asterisk DUNDi debug2007-02-20T14:46:29Z<p>Gijs: </p>
<hr />
<div>When making a call from extension 1301 to 1001, the lookup has to pass 2 PBX's.<br />
<br />
==Situation==<br />
'''Extensions:'''<br />
* 1'''3'''01 is connected to PBX'''1'''<br />
* 1'''6'''01 is connected to PBX'''2'''<br />
* 1'''0'''01 is connected to PBX'''3'''<br />
<br />
'''Peering:'''<br />
* PBX1 (<tt>192.168.1.101</tt>) peers with PBX2 (<tt>192.168.1.103</tt>) and vice-verse.<br />
* PBX2 (<tt>192.168.1.103</tt>) peers with PBX3 (<tt>192.168.1.106</tt>) and vice-verse.<br />
* PBX1 '''does not peer''' with PBX3 and vice-verse.<br />
<br />
In the CLI this shows as follows:<br />
<br />
'''PBX1''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (2 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX2''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:97:0b:98 192.168.1.101 (S) Symmetric Unavail OK (3 ms)<br />
00:0c:29:d2:d8:ec 192.168.1.106 (S) Symmetric Unavail OK (1 ms)<br />
2 dundi peers [2 online, 0 offline, 0 unmonitored]<br />
<br />
'''PBX3''':<br />
asterisk1*CLI> dundi show peers<br />
EID Host Model AvgTime Status<br />
00:0c:29:a7:e0:73 192.168.1.103 (S) Symmetric Unavail OK (1 ms)<br />
1 dundi peers [1 online, 0 offline, 0 unmonitored]<br />
<br />
<br />
For ext. 1301 to call 1001, all 3 PBX's schould participate in the lookup.<br />
<br />
== DUNDi Debug-info ==</div>Gijshttps://wiki.td-er.nl/index.php?title=DUNDi_network_traffic&diff=1989DUNDi network traffic2007-02-20T14:32:46Z<p>Gijs: </p>
<hr />
<div>[[Asterisk DUNDi debug]]</div>Gijshttps://wiki.td-er.nl/index.php?title=Assignment_1:_DUNDi_%26_IAX_(by_Gijs_%26_Ruben)&diff=1988Assignment 1: DUNDi & IAX (by Gijs & Ruben)2007-02-20T14:23:55Z<p>Gijs: </p>
<hr />
<div><big>'''Getting started'''</big><br />
<br />
''Asterisk''<br />
* [[About Asterisk]]<br />
* [[Configuration of Asterisk]]<br />
''[[Trixbox]]''<br />
<br />
''[[X-Lite]]''<br />
<br />
''[[Ethereal]] & [[Wireshark]]''<br />
<br />
<big>'''Controlling the video-quality'''</big><br />
* [[Information on Video Codecs]]<br />
* [[Traffic measurements Video]]<br />
<big>'''Controlling the voice-quality'''</big><br />
* [[Information on Audio Codecs]]<br />
* [[Traffic measurements Audio]]<br />
<big>'''DUNDi'''</big><br />
* [[What is DUNDi?]]<br />
* [[DUNDi configuration|Configuration of DUNDi]]<br />
* [[DUNDi network traffic]]<br />
<br />
<big>'''[[Communication of Trixboxes]]'''</big><br />
<br />
<big>'''[[Configuration of a telephone exchange]]'''</big><br />
<br />
<br />
[[Vragen aan Thales]]</div>Gijshttps://wiki.td-er.nl/index.php?title=SIP_vs_H323&diff=1987SIP vs H3232007-02-20T07:54:23Z<p>Gijs: /* Links */</p>
<hr />
<div>([http://www.en.voipforo.com/H323vsSIP.php Source])<br />
<br />
H.323 is the more mature of the two, but problems may arise due to lack of flexibility. SIP is currently less defined, but has greater scalability which could ease internet application integration. Which protocol will win out in the end? It is still too early to tell, but our unbiassed analysis will help you decide which protocol best suites your application.<br />
<br />
{| border="1" cellspacing="0" allign="center"<br />
! <br />
! H.323<br />
! SIP<br />
|-<br />
|style="color:#ff0000;"|<big>Architecture</big><br />
|H.323 covers almost every service, such as capability exchange, conference control, basic signaling,QoS, registration, service discovery, and so on. <br />
| SIP is modular because it covers basic call signaling, user location, and registration. Other features are in other separate orthogonal protocols <br />
|-<br />
|rowspan="2"|Components <br />
|allign="center"|Terminal/Gateway <br />
|allign="center"|UA <br />
|-<br />
|allign="center"|Gatekeeper <br />
|allign="center"|Servers <br />
|-<br />
|rowspan="2"|Protocols <br />
|allign="center"|RAS/Q.931 <br />
|allign="center"|SI <br />
|-<br />
|allign="center"|H.245 <br />
|allign="center"|SDP <br />
|-<br />
|colspan="3" style="color:#ff0000;"|<big>Call control Functionality</big><br />
|-<br />
|Call Transfer <br />
|allign="center"|Yes <br />
|allign="center"|Yes <br />
|-<br />
|Call Forwarding <br />
|allign="center"|Yes <br />
|allign="center"|Yes <br />
|-<br />
|Call Holding <br />
|Yes <br />
|Yes <br />
|-<br />
|Call Parking/Pickup <br />
|Yes <br />
|Yes <br />
|-<br />
|Call Waiting <br />
|Yes <br />
|Yes <br />
|-<br />
|Message Waiting Indication <br />
|Yes <br />
|No <br />
|-<br />
|Name Identification <br />
|Yes <br />
|No <br />
|-<br />
|Call Completion on Busy Subscriber <br />
|Yes <br />
|Yes <br />
|-<br />
|Call Offer <br />
|Yes <br />
|No <br />
|-<br />
|Call Intrusion <br />
|Yes <br />
|No <br />
|-<br />
|<br />
|H.323 splits them across H.450, RAS, H.245 and Q.931 <br />
|<br />
|-<br />
|colspan="3" style="color:#ff0000;"|<big>Advanced features</big> <br />
|-<br />
|Multicast Yesgnaling <br />
|Yes, location requests (LRQ) and auto gatekeeper discovery (GRQ). <br />
|Yes, e.g., through group INVITEs. <br />
|-<br />
|Third-party Call Contro <br />
|Yes, through third-party pause and re-routing which is defined within H.323. More sophisticated control is defined by the related H.450.x series of standards. <br />
|Yes, through SIP as described in separate Internet Drafts. <br />
|-<br />
|Conference <br />
|Yes <br />
|Yes <br />
|-<br />
|Click for Dial <br />
|Yes <br />
|Yes <br />
|-<br />
|colspan="3" style="color:#ff0000;"|<big>Scalability</big> <br />
|-<br />
|Large Number of Domains <br />
|The initial intent of H.323 was for the support of LANs, so it was not inherently designed for wide area addressing. The concept of a zone was added to accommodate wide area addressing. Procedures are defined for “user location” across zones for email names. Annex G defines communication between administrative domains, describing methods to allow for address resolution, access authorization and usage reporting between administrative domains. In multi-domain searches, there is no easy way to perform loop detection. Performing the loop detection can be done (using the PathValue field), but introduces other issues related to scalability. <br />
|SIP inherently supports wide area addressing. When multiple servers are involved in setting up a call, SIP uses a loop detection algorithm similar to the one used in BGP, which can be done in a stateless manner, thus avoiding scalability issues. The SIP Registrar and redirect servers were designed to support user location. <br />
|-<br />
|Large Number of Calls <br />
|H.323 call control can be implemented in a stateless manner. A gateway can use messages defined in H.225 to assist the gatekeeper in performing load balancing across gateways. <br />
|Call control can be implemented in a call stateless manner. SIP supports n to n scaling between UAs and servers. SIP takes less CPU cycles to generate signaling messages; therefore a server could theoretically handle more transactions. SIP has specified a method of load balancing based upon the DNS SRV record translation mechanisms. <br />
|-<br />
|Connection state <br />
|Stateful or Stateless <br />
|Stateful or Stateless. A SIP call is independent of the existence of a transport-layer connection, but instead signals call termination explicitly. <br />
|- <br />
|Internationalization <br />
|Yes, H.323 uses Unicode (BMPString within ASN.1) for some textual information (h323-id), but generally has few textual parameters. <br />
|Yes, SIP uses Unicode (ISO 10646-1), encoded as UTF-8, for all text strings, affording full character set neutrality for names, messages and parameters. SIP provides for the indication of languages and language preferences. <br />
|-<br />
|style="color:#ff0000;"|'''Security''' <br />
|Defines security mechanisms and negotiation facilities via H.235 , can also use SSL for transport-layer security. <br />
|SIP supports caller and callee authentication via HTTP mechanisms. Cryptographically secure authentication and encryption is supported hop-by-hop via SSL/TSL, but SIP could use any transport-layer or HTTP-like security mechanism, such as SSH or S-HTTP. Keys for media encryption are conveyed using SDP. SSL supports symmetric and asymmetric authentication. SIP also defines end-to-end authentication and encryption using either PGP or S/MIME. <br />
|-<br />
|style="color:#ff0000;"|'''Interoperability among Versions ''' <br />
|The fully backward compatibility in H.323 enables all implementations based on different H.323 versions to be seamlessly integrated. <br />
|In SIP, a newer version may discard some old features that are not expected to be implemented any more. This approach saves code size and reduces protocol complexity, but loses some compatibility between different versions. <br />
|-<br />
|style="color:#ff0000;"|'''Implementation Interoperability ''' <br />
|H.323 provides an implementers' guide, which clarifies the standard and helps towards interoperability among different implementations. <br />
|SIP thus far has not provided an implementation agreement. <br />
|-<br />
|style="color:#ff0000;"|'''Billing ''' <br />
|Even with H.323's direct call model, the ability to successfully bill for the call is not lost because the endpoint reports to the gatekeeper the beginning and end time of the call via the RAS protocol. <br />
|If the SIP proxy wants to collect billing information, it has no choice but to stay in the call signaling path for the entire duration of the call so that it can detect when the call completes. Even then, the statistics are skewed because the call signaling may have been delayed. <br />
|-<br />
|style="color:#ff0000;"|'''Codecs ''' <br />
|H.323 supports any codec, standardized or proprietary, not just ITU-T codecs. There have been codepoints for MPEG and GSM, which are not ITU-T codecs, in H.323 for a long time; many vendors support proprietary codecs through ASN.1 NonStandardParameters, which is equivalent to SIP's "privately-named codec by mutual agreement"; and any codec can be signaled via the GenericCapability feature that was added in H.323v3. Payload types can be specified statically or dynamically. <br />
|SIP supports any IANA-registered codec (as a legacy feature) or other codec whose name is mutually agreed upon. Payload types can be specified statically or dynamically <br />
|-<br />
|style="color:#ff0000;"|'''Call Forking''' <br />
|H.323 gatekeeper can control the call signaling and may fork the call to any number of devices simultaneously. <br />
|SIP proxies can control the call signaling and may fork the call to any number of devices simultaneously. <br />
|-<br />
|style="color:#ff0000;"|'''Transport Protocol''' <br />
|Reliable or unreliable , e.g., TCP or UDP. Most H.323 entities use a reliable transport for signaling. <br />
|Reliable or unreliable , e.g., TCP or UDP. Most SIP entities use an unreliable transport for signaling. <br />
|-<br />
|style="color:#ff0000;"|'''Message Encoding''' <br />
|H.323 encodes messages in a compact binary format that is suitable for narrowband and broadband connections. <br />
|SIP messages are encoded in ASCII text format, suitable for humans to read. <br />
|-<br />
|style="color:#ff0000;"|'''Addressing ''' <br />
|Flexible addressing mechanisms, including URLs and E.164 numbers. <br />
|SIP only understands URL-style addresses. <br />
|-<br />
|style="color:#ff0000;"|'''PSTN Interworking''' <br />
|H.323 borrows from traditional PSTN protocols, e.g., Q.931, and is therefore well suited for PSTN integration. However, H.323 does not employ the PSTN's circuit-switched technology--like SIP, H.323 is completely packet-switched. How Media Gateway Controllers fit into the overall H.323 architecture is well-defined within the standard. <br />
|SIP has no commonality with the PSTN and such signaling must be "shoe-horned" into SIP. SIP has no architecture that describes the decomposition of the gateway into the Media Gateway Controller and the Media Gateways. <br />
|-<br />
|style="color:#ff0000;"|'''Loop Detection''' <br />
|Yes, routing gatekeepers can detect loops by looking at the CallIdentifier and destinationAddress fields in call-processing messages. If the combination of these matches an existing call, it is a loop. <br />
|Yes, the SIP message Via header facilitates this. However, there has been talk about deprecating Via as a means of loop detection due to its complexity. Instead, the Max-Forwards header seems to be the prefered method of limiting hops and therefore loops. <br />
|-<br />
|style="color:#ff0000;"|'''Minimum Ports for VoIP Call''' <br />
|5 (Call signaling, 2 RTP, and 2 RTCP.) <br />
|5 (Call signaling, 2 RTP, and 2 RTCP.) <br />
|-<br />
|style="color:#ff0000;"|'''Video and Data Conferencing''' <br />
|H.323 fully supports video and data conferencing. Procedures are in place to provide control for the conference as well as lip synchronization of audio and video streams. <br />
|SIP has limited support for video and no support for data conferencing protocols like T.120. SIP has no protocol to control the conference and there is no mechanism within SIP for lip synchronization. <br />
|-<br />
|}<br />
<br />
<br />
== Links ==<br />
<br />
*[http://scholar.google.com/scholar?hl=en&lr=&q=cache:saYycJvXDZcJ:www.ss7.co.kr/reference/data/voip/Comparison%2520of%2520H.323%2520and%2520SIP.pdf+ITU-T+Recommendation+H.245+(1998),+Control+protocol+for+multimedia+communication. Comparison of H323 and SIP]<br />
*[http://www.sipcenter.com/sip.nsf/html/H.323+Background Overview SIP vs H323]<br />
* [http://www.vcon.com/pdfdoc/eng/wp/050214_SIP-H.323%20Convergence.pdf Discussion about Sip and H323] - Note: not entirely objective, because this vendor also sells H323 devices.</div>Gijshttps://wiki.td-er.nl/index.php?title=VoIP-quality_site_testresults&diff=1986VoIP-quality site testresults2007-02-19T20:58:55Z<p>Gijs: </p>
<hr />
<div>Tests are performed via [http://mercury.brixnet.com/index.html this] site.<br />
<br />
== Gijs ==<br />
The analysis of a VoIP-call from Groningen (provider:BBned) to London:<br />
<br />
[[image:Brixnet VoIP-quality-results Gijs.png]]<br />
<br />
== RuG ==</div>Gijshttps://wiki.td-er.nl/index.php?title=File:Brixnet_VoIP-quality-results_Gijs.png&diff=1985File:Brixnet VoIP-quality-results Gijs.png2007-02-19T20:57:05Z<p>Gijs: </p>
<hr />
<div></div>Gijshttps://wiki.td-er.nl/index.php?title=VoIP-quality_site_testresults&diff=1984VoIP-quality site testresults2007-02-19T20:56:55Z<p>Gijs: </p>
<hr />
<div>== Gijs ==<br />
The analysis of a VoIP-call from Groningen (provider:BBned) to Groningen:<br />
<br />
[[image:Brixnet VoIP-quality-results Gijs.png]]<br />
<br />
== RuG ==</div>Gijs