<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://docs.telcobridges.com/mediawiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://docs.telcobridges.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Krzysztof+Drewicz</id>
		<title>TBwiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://docs.telcobridges.com/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Krzysztof+Drewicz"/>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Special:Contributions/Krzysztof_Drewicz"/>
		<updated>2026-05-29T21:38:34Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.18.1</generator>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/Text_Call_Detail_Records</id>
		<title>Text Call Detail Records</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/Text_Call_Detail_Records"/>
				<updated>2011-02-02T13:49:45Z</updated>
		
		<summary type="html">&lt;p&gt;Krzysztof Drewicz: /* Default values */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Text [[call detail record|call detail records]] (CDR) are saved in a log file on disk.&lt;br /&gt;
&lt;br /&gt;
In order to save disk space and simplify the archiving and backup of CDR log files, this log file is automatically archived (gzipped) and rotated every N seconds, as specified by the system configuration.&lt;br /&gt;
&lt;br /&gt;
The format of the CDR traces is defined by configuration, using variables that are replaced by the Gateway application when writing to the log.&lt;br /&gt;
For example, the following variable will be replaced by the called number:&lt;br /&gt;
@{CalledNumber}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Enabling text CDR ==&lt;br /&gt;
Text CDR functionality is enabled through the Toolpack Web Portal:&lt;br /&gt;
*Go to the '''Gateway-&amp;gt;Configuration''' menu.&lt;br /&gt;
*Click on the '''Edit''' link of the configuration you wish to enable CDR for.&lt;br /&gt;
*Click on '''Use CDR behavior''' to enable the CDR behavior&lt;br /&gt;
*Expand the '''CDR Options''' section&lt;br /&gt;
*Click on '''Use text CDR''' to enable text-based CDR&lt;br /&gt;
*Expand the '''Text CDR parameters''' section&lt;br /&gt;
*Configure the '''Text CDR parameters''' the way you want, using the parameters describe below&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuration parameters  ==&lt;br /&gt;
&lt;br /&gt;
*'''CDR log file path''': Path of the CDR log file, relative to the current working directory of the Gateway application (e.g.[...]/toolpack/setup/12358/apps/gateway). &lt;br /&gt;
*'''CDR format (start)''': Format of the text CDR log written at the time the call is answered (or terminated if it was never answered). This format contains variables automatically replaced (see below). &lt;br /&gt;
*'''CDR format (update)''': Format of the text CDR log written periodically during call if the CDR option '''Enable periodic CDR update''' is used. This format contains variables automatically replaced (see below). &lt;br /&gt;
*'''CDR format (end)''': Format of the text CDR log written at the time the call is terminated. This format contains variables automatically replaced (see below). &lt;br /&gt;
*'''Rotation delay in seconds''': Delay, in seconds, at which the log file is rotated and gzipped. A delay of 3600 seconds will make log file rotate every hour, for example. '''NOTE''': This parameter cannot be larger then 86400 seconds (1 day). A value of 0 will be considered as the equivalent of the maximum value. &lt;br /&gt;
*'''Max total size of gzipped CDR logs''': Maximum total size (in bytes) of all gzipped log file segments on disk. If ever total size exceeds this limit, older gzipped log files will be deleted. A value of 0 will be considered as unlimited size.&lt;br /&gt;
&lt;br /&gt;
== Available variables ==&lt;br /&gt;
The following variables exist and can be used to define the CDR log format:&lt;br /&gt;
 *@{ApplicationName}:        Name of the application that has written this log (&amp;quot;Gateway&amp;quot;)&lt;br /&gt;
 *@{CalledNumber}:           Called number&lt;br /&gt;
 *@{CallingNumber}:          Calling number&lt;br /&gt;
 *@{CallType}:               Call type (&amp;quot;Telephony&amp;quot; or &amp;quot;VOIP&amp;quot;)&lt;br /&gt;
 *@{Codec}:                  Codec used for this call (&amp;quot;G711&amp;quot; for example)&lt;br /&gt;
 *@{ConnectedTime}:          Time where the call was answered (and connected with another leg) (in number of seconds since epoch)&lt;br /&gt;
 *@{ConnectedTime:format}:   Same as @{ConnectedTime} but with custom print format (local time zone), using 'strftime' style, with added support for @m replaced by milliseconds.&lt;br /&gt;
                              Example format: %Y-%m-%d %H:%M:%S.@m  -&amp;gt; 2009-09-02 12:16:24.333&lt;br /&gt;
 *@{ConnectedTimeUtc:format}:Same as @{ConnectedTime:format} but printed in UTC time, rather than local time zone.&lt;br /&gt;
 *@{EndTime}:                Time where the call has started terminating (in number of seconds since epoch).&lt;br /&gt;
                              Note that slightly differs from the @{Timestamp}, since the 'End' CDR trace is printed once the call has finished terminating,&lt;br /&gt;
                              while @{EndTime} reports the time where the call has started terminating (upon hangup for example).&lt;br /&gt;
 *@{EndTime:format}:         Same as @{EndTime} but with custom print format (local time zone), using 'strftime' style, with added support for @m replaced by milliseconds.&lt;br /&gt;
                              Example format: %Y-%m-%d %H:%M:%S.@m  -&amp;gt; 2009-09-02 12:16:24.333&lt;br /&gt;
 *@{EndTimeUtc:format}:      Same as @{EndTime:format} but printed in UTC time, rather than local time zone.&lt;br /&gt;
 *@{LegId}:                  Unique Id for this leg (32 bits value, but may eventually be upgraded to 64 bits value).&lt;br /&gt;
                              Please note that in current implementation this Id is unique at a given time,&lt;br /&gt;
                              but it can be reused later for subsequent calls. This Id will, however, remain constant&lt;br /&gt;
                              even if there is a HA switchover between any active and standby components of the system.&lt;br /&gt;
 *@{LinkId}:                 Unique Id of the link between two call legs (32 bits value, but may eventually be upgraded to 64 bits value).&lt;br /&gt;
                             Please note that in current implementation this Id is unique at a given time, but it can be reused later for subsequent calls.&lt;br /&gt;
 *@{MediaInfo}:              Protocol type dependent information on the call leg.&lt;br /&gt;
                             For TDM (Telephony) calls (SS7 or ISDN): &amp;quot;trunk_name:timeslot_nb&amp;quot;.&lt;br /&gt;
                             For VOIP calls (SIP): &amp;quot;codec@ip:port&amp;quot;&lt;br /&gt;
 *@{NAP}:                    Name of the NAP this call leg is from&lt;br /&gt;
 *@{OrginatorName}:          Direction of the call:&lt;br /&gt;
                              - &amp;quot;originate&amp;quot; (incoming call leg) - &amp;quot;answer&amp;quot; (outgoing call leg)&lt;br /&gt;
 *@{Protocol}:               Type of protocol used (&amp;quot;SS7&amp;quot;, &amp;quot;ISDN&amp;quot;, or &amp;quot;SIP&amp;quot;)&lt;br /&gt;
 *@{RemoteIP}:               For VOIP calls, IP address of the remote peer for this call leg.&lt;br /&gt;
 *@{RemotePort}:             For VOIP calls, UDP port of the remote peer for this call leg.&lt;br /&gt;
 *@{SessionId}:              Unique call identifier, in the form of 4 values of 32 bits, printed as 4 blocks of 8 hexadecimal charaters separated by a space.&lt;br /&gt;
                              Please note that in current implementation this Id is unique at a given time, but it can be reused later for subsequent calls.&lt;br /&gt;
 *@{StartTime}:              Time where the call was created (in number of seconds since epoch)&lt;br /&gt;
 *@{StartTime:format}:       Same as @{StartTime} but with custom print format (local time zone), using 'strftime' style, with added support for @m replaced by milliseconds.&lt;br /&gt;
                              Example format: %Y-%m-%d %H:%M:%S.@m  -&amp;gt; 2009-09-02 12:16:24.333&lt;br /&gt;
 *@{StartTimeUtc:format}:    Same as @{StartTime:format} but printed in UTC time, rather than local time zone.&lt;br /&gt;
 *@{TerminationCause}:       Cause of the call termination, printed as an integer value (refering enum TBCMC_CALL_REASON_CODE)&lt;br /&gt;
 *@{TerminationCauseString}: Cause of the call termination, printed as an string value&lt;br /&gt;
 *@{TerminationSource}:      Identifies which of the legs has initiated the call termination first: &amp;quot;LocalLeg&amp;quot; or &amp;quot;ConnectedLeg&amp;quot;&lt;br /&gt;
 *@{TimeslotNumber}:         For TDM (Telephony) calls, timeslot number that this call was using for audio.&lt;br /&gt;
 *@{Timestamp}:              Time where this CDR log entry was written.&lt;br /&gt;
                              Note that slightly differs from the @{Timestamp}, since the 'End' CDR trace is printed once the call has finished terminating,&lt;br /&gt;
                              while @{EndTime} reports the time where the call has started terminating (upon hangup for example).&lt;br /&gt;
 *@{Timestamp:format}:       Same as @{Timestamp} but with custom print format (local time zone), using 'strftime' style, with added support for @m replaced by milliseconds.&lt;br /&gt;
                              Example format: %Y-%m-%d %H:%M:%S.@m  -&amp;gt; 2009-09-02 12:16:24.333&lt;br /&gt;
 *@{TimestampUtc:format}:    Same as @{Timestamp:format} but printed in UTC time, rather than local time zone.&lt;br /&gt;
 *@{TrunkName}:              For TDM (Telephony) calls, name of the trunk that this call was using for audio.&lt;br /&gt;
 *@{UserName}:               For SIP calls, name of the user.&lt;br /&gt;
 *@{ChargeIndicator}:        For TDM (SS7 and CASR2); received charge indicator in Alert message.&lt;br /&gt;
&lt;br /&gt;
== Redundancy ==&lt;br /&gt;
&lt;br /&gt;
In a redundant Toolpack system with two Gateway applications, the active Gateway application writes the CDR logs.&lt;br /&gt;
&lt;br /&gt;
The analysis of the logs for the purpose of extracting billing information must be done after combining the two logs, sorting the entries by timestamp for example.&lt;br /&gt;
&lt;br /&gt;
It is worth noting that an entry will never be duplicated. It can, however, be lost during transition from active to standby Gateway applications following a system fault. Consequently, a CDR analysis script must thus handle the case where a call answered log does not match any call termination log.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Default values  ==&lt;br /&gt;
&lt;br /&gt;
The default values are as follows: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; For the CDR that is printed when the call leg is answered: &lt;br /&gt;
&lt;br /&gt;
 @{Timestamp:%Y-%m-%d&amp;amp;nbsp;%H:%M:%S.@m%z},BEG,SessionId='@{SessionId}',LegId='@{LegId}',&lt;br /&gt;
 StartTime='@{StartTime}',ConnectedTime='@{ConnectedTime}',Calling='@{CallingNumber}', &lt;br /&gt;
 Called='@{CalledNumber}',NAP='@{NAP}',Protocol='@{Protocol}',Direction='@{OrginatorName}' &lt;br /&gt;
&lt;br /&gt;
(Note: the above is a signle line!)&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For the CDR that is printed throught the call at periodic intervals (if this option is enable on the CDR behavior): &lt;br /&gt;
&lt;br /&gt;
 @{Timestamp:%Y-%m-%d&amp;amp;nbsp;%H:%M:%S.@m%z}: SessionId='@{SessionId}' LegId='@{LegId}'&lt;br /&gt;
&lt;br /&gt;
For the CDR that is printed when the call leg is terminated: &lt;br /&gt;
&lt;br /&gt;
 @{Timestamp:%Y-%m-%d&amp;amp;nbsp;%H:%M:%S.@m%z},END,SessionId='@{SessionId}',LegId='@{LegId}',&lt;br /&gt;
 StartTime='@{StartTime}',ConnectedTime='@{ConnectedTime}', EndTime='@{EndTime}',&lt;br /&gt;
 FreedTime='@{Timestamp}',TerminationCause='@{TerminationCauseString}', &lt;br /&gt;
 Calling='@{CallingNumber}',Called='@{CalledNumber}',NAP='@{NAP}',Direction='@{OrginatorName}' &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
(Note: the above is a signle line!)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examples ==&lt;br /&gt;
&lt;br /&gt;
For example, one may define a short comma-separated value-based  (CSV) CDR log file to minimize disk space requirements:&lt;br /&gt;
 &amp;quot;@{LegId},@{ConnectedTime},@{EndTime},@{CallingNumber},@{CalledNumber},@{NAP}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
As another example, one may define a XML-based CDR log file:&lt;br /&gt;
 &amp;lt;cdr_start&amp;gt;&lt;br /&gt;
  &amp;lt;time timestamp=&amp;quot;@{Timestamp}&amp;quot; start_time=&amp;quot;@{StartTime}&amp;quot; connect_time=&amp;quot;@{ConnectedTime}&amp;quot; end_time=&amp;quot;@{EndTime}&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;id session_id=&amp;quot;@{SessionId}&amp;quot; leg_id=&amp;quot;@{LegId}&amp;quot; link_id=&amp;quot;@{LinkId}&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;number calling=&amp;quot;@{CallingNumber}&amp;quot; called=&amp;quot;@{CalledNumber}&amp;quot; direction=&amp;quot;@{OrginatorName}&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;info nap=&amp;quot;@{NAP}&amp;quot; protocol=&amp;quot;@{Protocol}&amp;quot; called=&amp;quot;@{CalledNumber} media=&amp;quot;@{MediaInfo}&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;termination cause=&amp;quot;@{TerminationCauseString}&amp;quot; source=&amp;quot;@{TerminationSource}&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/cdr_start&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to retrieve CDR  ==&lt;br /&gt;
&lt;br /&gt;
The CDR log files are located in the directory {Install Directory}/toolpack/setup/12358/apps/gateway/{CDR log file path}. The '{CDR log file path}' is set in the web portal see above.&lt;br /&gt;
&lt;br /&gt;
=== default location ===&lt;br /&gt;
*Linux:&lt;br /&gt;
** /lib/tb/toolpack/setup/12358/apps/gateway/cdr_logs/&lt;br /&gt;
*Windows:&lt;br /&gt;
** C:\TelcoBridges\tb\toolpack\setup\12358\apps\gateway\cdr_logs\&lt;br /&gt;
&lt;br /&gt;
There are several ways to fetch those files, here is a short list of most common tools:&lt;br /&gt;
* Filezilla (using SFTP)&lt;br /&gt;
* scp (for Linux user)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
*This mode of operation is not recommended for [[TMG800]] or [[TMG3200]] with a flash disk. However, the TMG3200 with SATA disk option is OK (use command cat /proc/device-tree/model to identify your device model).&lt;br /&gt;
*TelcoBridges does not recommend storing CDR logs via network file systems (NFS or other). We highly recommend writing to a local hard drive and have developed a background script that moves the gzipped log segments for backup or analysis.&lt;/div&gt;</summary>
		<author><name>Krzysztof Drewicz</name></author>	</entry>

	<entry>
		<id>https://docs.telcobridges.com/tbwiki/TMP6400</id>
		<title>TMP6400</title>
		<link rel="alternate" type="text/html" href="https://docs.telcobridges.com/tbwiki/TMP6400"/>
				<updated>2009-12-07T14:19:30Z</updated>
		
		<summary type="html">&lt;p&gt;Krzysztof Drewicz: /* Available configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Tdev 1U Front sml.jpg|thumb|250px|Front view of TMP6400 in 1U form factor ]]&lt;br /&gt;
The TelcoBridges [[Tdev]]™ TMP6400 is a high-density computer telephony (CTI) development platform that meets the needs of service providers looking to expand their [[value-added services]] (VAS), providing a cost-effective foundation for introducing new offerings while rapidly scaling to meet the needs of growing subscribers.&lt;br /&gt;
&lt;br /&gt;
[[Image:Tdev 2U Front sml.jpg|thumb|250px|Front view of TMP6400 in 2U form factor ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Whether deployed on a wireline, wireless or VOIP network, the TMP6400 delivers seamless voice interoperability across TDM and IP networks. However the TMP6400 builds on those capabilities with an advanced application platform for delivering [[ringback tones|ring-back tones]], [[unified communications]], [[Prepaid &amp;amp; postpaid calling|pre-paid/post-paid calling]], [[conferencing]], [[Fax over IP]] (T.38), [[voicemail]], and other enhanced services to subscribers irrespective of access protocol or device. Leveraging TelcoBridges’ [[Toolpack]]™ software toolkit, and a choice of host deployment platforms, the TMP6400 provides the ability to rapidly develop and deploy applications that tie together real-time communications from the network with stored external data sources to provide unique subscriber-specific services. &lt;br /&gt;
&lt;br /&gt;
[[Image:1U Rear 16T1E1 AC sml.jpg|thumb|250px|Rear view of TMP6400 with support for 16 T1/E1 ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Offering the industry-leading highest port density and the lowest operating cost—an average 66% less power consumption than competing products offering similar capacity—the fully field-upgradable Tdev TMP6400 supports the drive by service providers to increase their profitability, while reduce the environmental impact of their network footprint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Features &amp;amp; Benefits ==&lt;br /&gt;
[[Image:1U Rear DS3 AC sml.jpg |thumb|250px|Rear view of TMP6400 with support for 3 DS3 connections ]]&lt;br /&gt;
&lt;br /&gt;
'''Carrier grade:''' Architected to exacting industry standards, the TMP6400 is designed to meet the need for reliability that service providers and their customers demand. The TMP6400 features a non-blocking architecture providing full availability of call channels and other system resources (IVR, VOIP).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:1U Rear STM1 AC sml.jpg |thumb|250px|Rear view of TMP6400 with support for 1 STM-1 connection ]]&lt;br /&gt;
&lt;br /&gt;
'''Flexibility:''' A network-agnostic platform, the TMP6400 supports multiple ‘any-to-any’ switching as well as transcoding support for all major wireline, wireless and Internet voice codecs. With separate chipsets for signaling, [[transcoding]] and [[IVR|interactive voice response (IVR)]], the TMP6400 provides true full channel availability.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Density:''' Supporting up to 64 T1/E1/J1, 3 DS-3 or 1 STM-1 interfaces for a total of 2048 universal voice channels per unit, the TMP6400 offers significant density in a 1U or 2U form factor. The TMP6400 enables consolidation of multiple devices for signaling, transcoding and IVR into a single box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''High availability:''' The TMP6400 features full redundancy with fault-tolerant hardware and software components.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Available configurations ==&lt;br /&gt;
&lt;br /&gt;
*TMP6410 – 8 x T1/E1/J1&lt;br /&gt;
*TMP6412 – 16 x T1/E1/J1&lt;br /&gt;
*TMP6414 – 32 x T1/E1/J1&lt;br /&gt;
*TMP6416 – 48 x T1/E1/J1&lt;br /&gt;
*TMP6418 – 64 x T1/E1/J1&lt;br /&gt;
*TMP6420 – 1 x DS-3&lt;br /&gt;
*TMP6422 – 2 x DS-3&lt;br /&gt;
*TMP6424 – 3 x DS-3&lt;br /&gt;
*TMP6430 – 1 x STM-1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Each configuration is available with AC or DC power. Measured consumption of 6402 with 64 E1 on copper is about 1.7 A on -48VDC.&lt;br /&gt;
&lt;br /&gt;
== Related actions ==&lt;br /&gt;
*[[Toolpack:Adding a TMP6400|Add a TMP6400 to an existing system]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
*[[Media:DATA SHEET TMP6400.pdf|Data sheet]]&lt;br /&gt;
*[[Media:TMP6400_Installation_Guide_Issue2.2.pdf|TMP6400 and TMS1600 Installation guide]]&lt;br /&gt;
*[[Media:TMP6401_AC_QIG_Issue3.1.pdf|TMP6401 (1U/AC) Quick Installation guide]]&lt;br /&gt;
*[[Media:TMP6401_DC_QIG_Issue2.1.pdf|TMP6401 (1U/DC) Quick Installation guide]]&lt;br /&gt;
*[[Media:TMP6402_AC_QIG_Issue3.1.pdf|TMP6402 (2U/AC) Quick Installation guide]]&lt;br /&gt;
*[[Media:TMP6402_DC_QIG_Issue2.1.pdf|TMP6402 (2U/DC) Quick Installation guide]]&lt;br /&gt;
*[[Regulatory compliance]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:Hardware]]&lt;/div&gt;</summary>
		<author><name>Krzysztof Drewicz</name></author>	</entry>

	</feed>