This chapter demonstrates how to set up the basic SIP service so that your customers will be able to make outgoing calls via your SIP server.
For more information about available fields, click at the top-right corner.
Checklist
Use this checklist to check off the operations you have completed while performing the system setup according to the instructions in this chapter. Please be sure to perform all of the operations in the order designated (all of the boxes should be checked), otherwise, the service will not work.
Operation | Done |
Perform initial configuration of PortaBilling | |
Rating configuration (Vendor) | |
Create a tariff (referred to as tariff A later on), which describes your termination costs and routing for off-net calls (make sure it has a Routing type!) | |
Enter rates in tariff A for the destinations your customers will call | |
Create an off-net calls vendor | |
Create a connection for this vendor using tariff A | |
Rating configuration (Customer) | |
Create a tariff (referred to as tariff B later on), which will be applied to SIP subscribers for making outgoing calls | |
Create a tariff (referred to as tariff C later on), which will be applied to SIP subscribers for receiving incoming calls | |
Enter rates in tariff B for the destinations to which your customers will call (both off-net and SIP-to-SIP calls) | |
Enter rates in tariff C for the destinations from which your customers receive incoming calls | |
Create your SIP product | |
Create a rating entry for this product, associating the Voice calls service and tariff B with the PortaSIP node and empty Access code | |
Create a rating entry for this product, associating the Voice calls service and tariff C with the PortaSIP node and INCOMING Access code | |
Create an invoice template | |
Account provisioning | |
Create a customer class for your SIP customers | |
Create a retail customer who will use the SIP service | |
Create several accounts for this customer, with account ID identical to the SIP phone number | |
Testing | |
Program the parameters (phone #, password and SIP server address) into the SIP phone and make a test call |
Initial configuration of PortaBilling
If you have just installed the PortaBilling software or dedicated a new billing environment to configure the services described in this handbook, make sure to first perform the initial configuration of PortaBilling. To do this, use the PortaBilling initial configuration handbook.
Create a vendor tariff
The tariff is a single price list for calling services or for your termination costs. A tariff combines:
- Conditions which are applicable for every call regardless of the called destination.
- Per destination rates.
- On the navigation menu on the left, select Service catalog and click Tariffs.
- On the Create tariff panel, fill in the tariff details:
- Name – type a short name for the tariff object; this is the name you will see in the select menus (for example, GlobalNet Termination).
- Currency – choose the currency in which the vendor charges you. The currency for the tariff may be chosen only once, and cannot be changed later.
- Service – choose Voice calls here.
- Applied to – choose Vendor in the Applied to list.
- Routing – enable the Routing option for this tariff.
- Click Save.
Enter rates for your vendor tariff
Rates are per-destination prices. Please refer to the Call billing parameters section for more information on billing parameters.
Managing rates online
Managing rates online is very convenient for maintaining existing rate tables, as well as for reference purposes. For new price lists or for major updates, an offline method is better.
- On the vendor tariff’s panel (GlobalNet Termination), click Rates.
- On the Add rate panel, fill in the rate details:
- Destination – select a destination prefix from the list or type it in directly, e.g., 420 for Czech Republic. Note that you must create an entry for certain phone prefixes in the Destination register before creating a rate for them in the tariff.
- Rating mode – select the Flat rate option here. If you want to enter different rates for the peak and off-peak periods, select the Separate peak/off-peak rate option.
- Route category – you can split your available routes into several categories, such as “High quality,” “Premium,” etc., then create routing plans for your customers. Use the Default route category for now.
- Preference – the routing priority for the specific destination. 10 is the highest priority, 0 is the lowest (i.e. do not use this destination for routing at all). For now, you can just set all of your vendor rates at preference 5, and the system will organize available routes according to cost (LCR).
- Huntstop – when enabled, instructs the system to not try any routes with a lower preference.
- First interval, seconds – type a first billing unit in seconds.
- Next interval, seconds – type the next billing unit in seconds.
- First price – type a per minute price for a first interval.
- Next price – type a per minute price for the next interval. Note that off-peak fields appear only if the Separate peak/off-peak rate rating mode is selected or an off-peak period has already been assigned to this tariff on the General info panel.
- Effective from – if you want this rate to take effect sometime in the future, you can either type in a date manually, or use the calendar.
- Click Save.
- Repeat these steps if you need to enter more rates.
Managing rates offline
You can also upload rates from a .csv or .xls file – please consult the Rate import handbook for more details.
Perform the Create tariff and Enter rates steps described above until you have created a tariff with the termination costs for each termination partner you have; these tariffs are created as “Applied to: Vendor”.
Create vendors
This step is only required if you have not entered information about your vendors into the system before. Vendors are your termination partners or the providers of incoming toll-free lines and DID numbers.
- On the navigation menu, select Infrastructure, then select Vendors.
- On the Create vendor panel, fill in the vendor details:
- Name – type a short name for the vendor object; this will be used on the web interface (for example, GlobalNet).
- Currency – choose the currency in which this vendor charges you.
- Opening balance – this indicates a starting balance for the vendor; the default is zero.
- Billing period – split period for vendor statistics.
- Click Save.
When a call is sent from your network to the vendor’s gateway, the vendor performs an authorization for the call. Authorization can be done based on your PortaSIP IP address (in this case you just need to supply that information to the vendor and no further action is required on your part) or the vendor can provide you with a SIP username and password to use for call authorization. These credentials should be stored with the “vendor authorization” info and then associated with a specific connection so that they can be used during actual call processing.
- In this case, it is necessary to create an account for digest authorization of outgoing calls:
- Repeat these steps to add all of your vendors.
Define connections
This connection represents the point from which calls leave or enter your network and are directed to or from vendors where charges are incurred.
- On your vendor’s panel (GlobalNet), click Connections.
- On the Create connection panel, fill in the connection details:
- Description – type a descriptive name for this connection. It will be displayed in the list of connections.
- Service type – select Voice calls.
- Type of connections – select SIP.
- Direction – select To vendor.
- Tariff – choose the tariff that defines your termination costs for this connection/vendor.
- Active – use the slider to set this connection as active.
- Identify gateway by – choose how to identify the gateway: IP, gateway ID or both. Specify the IP address and/or ID of the vendor’s gateway or switch.
- Capacity – fill in the maximum number of simultaneous calls.
- Click Save.
- On your vendor’s panel (GlobalNet), click General configuration.
- Vendor authorization – select GlobalNet-SIP for digest authorization of outgoing call from your accounts.
- Click Save.
- Repeat these steps to add more connections to this vendor.
Create customer tariffs
To enable your customers to make and receive calls, it is necessary to create two tariffs: one applied for outgoing calls and another one applied for incoming calls.
- On the navigation menu, select Service catalog and click Tariffs.
- On the Create tariff panel, fill in the tariff details:
- Name – type a short name for the tariff object; this is the name you will see in the select menus, (for example, SIP Phone Subscribers).
- Currency – this indicates the currency in which you charge your customers. The currency for the tariff is chosen only once, and cannot be changed later.
- Service – select Voice Calls.
- Applied to – select Customer as this tariff will be used to charge your customers.
- Managed by – select Administrator only here, since we are setting up a service without the involvement of resellers.
- Click Save.
- On your customer tariff’s panel (SIP Phone Subscribers), click General info.
- On the General info panel, fill in the following information:
- Default off-peak period – if you do not differentiate between peak and off-peak rates, just choose None; otherwise, select one of the previously defined off-peak periods.
- Destination group set – if you wish to enter rates in the tariff not for every individual prefix, but for a whole group of prefixes at once, you should create a destination group set and destination groups beforehand. Leave this select menu empty for now.
- Round up to, decimal places – instead of calculating xDRs with a 5-decimal-place precision, round up xDR amount values (e.g., to cents, so that 1.16730 becomes 1.17).
- Default formula – default rating formula, which will be applied to every rate created in the tariff. If you leave this empty, the “old-style” rating will be used.
- Short description – type a short tariff description. This will be shown in the rate lookup on the admin interface and the self-care pages for your accounts and customers.
- Description – type an extended tariff description.
- Click Save.
- Repeat these steps to create a tariff to be applied for incoming calls.
Enter rates to the tariff for outgoing calls
- On the navigation menu, select Service catalog and click Tariffs.
- Use the Tariff search panel to locate the tariff you created for outgoing calls (SIP Phone Subscribers). Specify one or more of the search criteria listed there and click Apply filters.
- On the Results panel, click your customer tariff name, which is also a link that redirects you to the edit tariff panel.
- On your customer tariff’s panel (SIP Phone Subscribers), click Rates.
- On the Add rate panel, fill in the rate details:
- Destination – select a destination prefix from the list or type it directly, e.g., 420 for Czech Republic. You must create an entry for certain phone prefixes in the Destination register before creating a rate for them in the tariff.
- Rating mode – select the Flat rate option here. If you want to enter different rates for the peak and off-peak periods, select the Separate peak / off-peak rate option.
- First interval, seconds – type a first billing unit in seconds.
- Next interval, seconds – type the next billing unit in seconds.
- First price – type a per minute price for the first interval.
- Next price – type a per minute price for the next interval
- Off-peak first interval – type a first billing unit in seconds for off‑peak time.
- Off-peak next interval – next billing unit in seconds for off‑peak time.
- Off-peak first price – type a per minute price for first interval for off‑peak time.
- Off-peak next price – type a per minute price for next interval for off-peak time. Off-peak fields appear only if the Separate peak / off-peak rate rating mode is selected or an off-peak period has already been assigned to this tariff on the General info panel.
- Rate formula – type a custom rating formula.
- Effective from – if you want this rate to take effect sometime in the future, you can either type in a date manually, or use the calendar (click on the DD-MM-YYYY link).
- Destination – select a destination prefix from the list or type it directly, e.g., 420 for Czech Republic.
- Click Save.
- Repeat these steps to enter more rates.
Enter rates to the tariff for incoming calls
The process of entering incoming call rates is similar to the one described above. If you do not actually charge your customers for incoming calls (in most cases, there is no cost associated with them), or charge them the same rate for incoming calls from any number, you can simply use the wildcard destination (|) and enter a single rate in the tariff.
Create a product
Accounts for accessing your SIP services will be issued for a specific product. Products are a powerful tool that defines different ways to bill an account. Product definition is always realized through these steps: product definition, service definition and configuration and creation of a rating list.
- On the navigation menu, select Service catalog and click Products.
- On the Create product panel, fill in the product details:
- Name – type an internal product name that will be shown on the administrator interface.
- Name visible to end users – type a name of the product that will be shown to end users on their self-care interfaces.
- Product type – select Main product here.
- Currency – choose a currency the product will be priced in.
- Managed by – select Administrator only here, since we are setting up a service without the involvement of resellers.
- Account default ACL – choose an Access Control List (ACL) for accounts with this product assigned. ACLs control which objects end users can access to and which actions they can perform.
- Account role – select Phone line since this product is intended for making and receiving calls.
- Click Save.
Included services
Define which service types are included in the product. A service type is a description of the physical service provided to end users.
To add a service type:
- On your product’s panel, click Services.
- On the Services panel, click Add a service.
- In the Select services to add dialog box, select Voice calls and click Add.
Service configuration
Define the default values of service attributes for all accounts which this product will be assigned to. The configuration of a limit on simultaneous calls represents a good example of service attributes definition.
Limit simultaneous calls
Fair usage policy is very important for every ITSP since it helps prevent fraud and service abuse of products that provide customers with free calls.
To configure a limit on simultaneous calls within a product:
- On the Services panel, click Voice calls.
- On the Voice calls configuration panel, enable the Fair usage policy.
- Type the maximum number of simultaneous calls allowed. This allows you to limit the number of concurrent calls for accounts using this product, thus ensuring that it will be for personal use only.
Usage charges
The rating list has two functions: it defines permitted access points (nodes and access numbers) and specifies which tariff should be used for billing in each of these points. At this step two rating entries need to be created – one to be used to handle outgoing calls and one – to handle incoming calls.
- On your product’s panel, click Charges, then click Usage charges.
- On the Usage charges panel, click Add.
- Fill in the required information:
- Service – select Voice сalls.
- Node – select the PortaSIP node.
- Access code – leave this field empty for the basic SIP service.
- Tariff – choose the tariff that will be used to calculate the charges for outgoing calls.
- Overdraft protection – to configure overdraft protection for this product, consult the Configure overdraft protection section within the product section in the Overdraft protection configuration handbook.
- Click Save.
- On the Usage charges panel, click Add to add the second rating entry.
- Fill in the required information:
- Service – select Voice сalls.
- Node – select the PortaSIP node.
- Access code – type INCOMING in this field.
- Tariff – choose the tariff that will be used to calculate the charges for incoming calls.
- Overdraft protection – to configure overdraft protection for this product, consult the Configure overdraft protection section within the product section in the Overdraft protection configuration handbook.
- Click Save.
Charges
On the Charges panel you can define special pricing such as volume discounts, regular payments such as subscriptions, and set up overdraft protection.
To access this panel, click Charges on your product’s panel, then click General info.
Overdraft protection
Use the slider to turn on/off overdraft protection. For obvious reason, turning off overdraft protection is not recommended for general use.
Default discount plan
This allows you to assign a discount plan for the product. Select None as no volume discount plan is specified for this service.
Subscription
This allows you to choose a subscription plan for the product, so that this subscription plan will be automatically applied to every account with this product assigned. Select None as no subscription plan is specified for this service.
Additional information
Define additional settings for the product.
- On your product’s panel, click Additional information.
- On the Additional information panel, fill in the following product information:
- Notes – open the Notes panel to make notes about the product.
- Description – your internal comments about the intended use of this product.
- Product group – a product group is a custom grouping of add-on products on the account self-care interface. Select None for this product.
- Account default ACL – the access level assigned by default to new accounts created with this product. The ACL determines which operations may be performed by accounts on the self-care pages. The default ACL value “Account self-care” allows all possible operations.
- Information URL – if you have an external server with a description of product features, enter the URL here (e.g., http://www.myproduct.com). Your customers will be able to go there from their self-care page.
- Description visible to end users – provide a product description to be shown to end users on their self-care interfaces.
- Click Save.
Create invoice template
At the end of a billing period, you can produce invoices for your customers. The invoice reflects all transactions (calls, payments, refunds, subscription charges, etc.) that occurred during a specific period. It serves as the primary record of services provided to a certain customer as well as the primary record of their current status. To enable invoice generation you need to create a template for the invoice layout first.
Even if you do not plan to distribute invoices to customers (e.g., invoices are produced by an external accounting system), it is still a good idea to create a template and use the word “statement” instead of “invoice.” This way your customers will always have up-to-date information about the history of their service consumption.
- On the navigation menu, select My company and click Templates.
- On the Create a templates panel, fill in the template details:
- Name – type a name for the template object; this will be used on the web interface.
- Template type – select Invoice.
- Managed by – select Administrator only.
- Source – specify the template creation source:
- Built-in editor – select this option to adjust a template using the built-in layout designer.
- External – select this option to use a template created by an external design agency.
- Content – select invoice page formats:
- Totals only – this is a traditional-style invoice. It consists of invoice header (your company name, customer name, etc.), invoice fields (invoice number, invoice date) and an invoice footer (subtotal, total).
- Service usage details included – this template’s first page is identical to the Totals only invoice template. It has multiple pages that detail all of the charges included in the invoice.
- Service usage details + subtotal per service – this template has multiple pages that detail all of the charges included in the invoice. It allows you to calculate (and respectively, show in the invoices) subtotals per service.
- Click Save.
Configure taxation
Configure taxation method
If you calculate taxes for your customers using an external taxation company (e.g., SureTax), it is necessary to configure the respective taxation method.
- On the navigation menu, select Financial and click Taxation.
- On the Taxation panel, go to Taxation plugins and select the required plug-in (e.g., SureTax) from the Taxation plugins list. On the panel that opens enable the Use SureTax taxation plugin option and specify the plug-in credentials:
- Click Save to save the plugin configuration.
Define your taxes
If you include taxes in your rates, it is necessary to define which taxes will apply to your customers.
- On the Taxation panel, select Customized taxes.
- On the Customized taxes panel, click the
Add button to add a new tax.
- Fill in the information about the new tax:
- Name – type in a name for the tax. This will be visible in the xDRs and in the taxation configuration for customers.
- Rate (%) – specify the rate value for this tax.
- Applied to – select which services this tax will be applied to: All charges, Usage charges or Recurring charges.
- Click the Save button.
Create a customer class
A customer class provides the ability to define the business model and a group of parameters in a centralized manner, and then apply those parameters to many customers simultaneously.
- On the navigation menu, select Sales, then select Customer classes.
- On the Create a customer class panel, fill in the customer class details:
- Name – type a short name for this customer class.
- Business model – select which customers this customer class will apply. Select Residential VoIP from the list.
- Currency – specify in which currency you charge the customers of this customer class. When specified, this customer class can only be assigned to customers with the same currency. Note that you can define the currency only when you create the customer class and can't change it later.
- Managed by – select Administrator only.
- Click Save.
- On your customer class panel, click Finances, then click General info.
- On the General info panel, fill in general information about the customer class:
- The billing period is closed – select Automatically.
- Configure the Statistics parameters:
- Generate statistics – leave this option enabled to generate statistics for customers who belong to this customer class.
- Send statistics via email – define how you will provide statistics to your customers.
- Configure the Status change parameters:
- On your customer class panel, click Finances, click Invoicing, then click Regular invoices.
- On the Regular invoices panel, specify the invoicing parameters for the customer class:
- Use regular invoices – enable this parameter to generate regular invoices for customers who belong to this customer class.
-
Invoice template – select the appropriate template which will be used to create a .pdf file with the invoice for your customers (e.g., Retail customers invoice template).
- Generate invoice pdf – leave the default option At the end of the billing period selected.
- Send invoices via email – select Automatically to automatically send an invoice to a customer at the end of a billing period.
- Configure other Regular invoices parameters for customers. Click
Help for a description of parameters available here.
- On the Out-of-turn invoices panel, specify the invoicing parameters for the customer class as described in the previous step.
- On your customer class panel, click Finances and then click Taxation.
- On the Taxation panel, select one of the available taxation methods and specify the taxation parameters for it. Please consult the PortaBilling help for a description of parameters available here. For the Fixed VAT Rate or Custom taxation methods, enable the Taxes included into rates/fees option and taxes that are calculated (for the Custom taxation method).
- On the Notifications panel, assign the notification template and select what email and SMS notifications to send. Refer to the Manage customer class notifications section in the How to… handbook for a detailed description.
- Click Save.
Create a customer
A customer is an owner of accounts. The customer’s contact information is used to distribute account usage information, call statistics, invoices, and so on.
In this example we will describe how to create a new customer.
- On the navigation menu, select Sales, then select Customers.
- On the Create customer panel, fill in the customer details:
- Name – type a short name for the customer object; this will be used on the web interface.
- Balance control – specify the way the customer will pay for the service: Postpaid – after consuming the services; Prepaid – prior to consuming the services. Select Postpaid in this field.
- Currency – choose the currency in which this customer will be billed.
- Credit limit – assign a credit limit for the customer.
- Business model – a business model defines what type of service is to be provided to the customer. Select Residential VoIP for this customer.
- Customer class – customer class allows you to define a policy for automated payment collection. By choosing a specific class here the customer will automatically inherit all of the class properties (grace period, invoice template, etc.). Select the previously created customer class.
- Billing period – choose a billing period for the customer. A billing period defines the frequency of invoicing for this customer.
- Billing period time zone – choose a time zone in which customer’s billing period will be closed and invoices will be generated.
- Click Save.
General info
Define the customer's personal information (such as name, email address, and etc.).
- On your customer’s panel, click Personal, then click General info.
- On the General info panel, fill in the customer’s personal information and an email address for the receipt of accounting information. After the billing period is over, a list of xDRs and other statistics will be sent to this address.
Web self-care
Define credentials and preferred settings (such as language, time zone, date input and output formats) for this customer's self-care interface.
- On your customer’s panel, click Personal, click General info, then click Web self-care.
- On the Web self-care panel, define credentials for the customer self-care interface (such as login, password, time zone, etc.) and other preferred settings.
Subscriptions
Define whether to suspend the customer when their balance is insufficient to cover subscription charges.
- On your customer’s panel, click Finances, click General info, then click Subscriptions.
- On the Subscriptions panel, set the Suspend on insufficient funds parameter. This defines whether the system should check that the customer has sufficient funds for their subscription charges.
Credit limit
- On your customer’s panel, click Finances, click General info, then click Credit limit.
- On the Credit limit panel, define the Credit limit warning threshold parameter. The customer can be notified by email when his balance is dangerously close to the credit limit and service will soon be blocked. The threshold can be specified:
- As a percentage (e.g., 90%). The warning will be sent when the customer’s balance exceeds that percentage of his credit limit. So, if the credit limit is USD 1000.00 and the threshold is 90%, a warning will be sent as soon as the balance exceeds USD 900.00. This is only applicable when the customer has a positive credit limit.
- As an absolute value. The warning will be sent as soon as the balance goes above the specified value.
Invoices and taxation
Define whether to send this customer their statistics and invoices by email.
- On your customer’s panel, click Finances, and then click Invoices and taxation.
- On the Invoices and taxation panel, set the Send Statistics via email option to Summary only. This delivers a call summary only and do not attach a details file; this could be useful in the case of a large number of calls. Other options are Full Statistics (attach a complete list of xDRs) or Do not send (this option prevents the delivery of event statistics to this customer via email).
Services
- On your customer’s panel, click Services.The Services panel provides an access to a group of panels where you can activate/deactivate various features of the voice calls service provided to the customer.This is a convenient way for managing parameters which are the same for a whole set of accounts. Instead of trying to configure them for each individual account, you can define them once at the customer level, then specify in the account configuration that the value in the customer’s configuration be used. Should you wish to change this value later, you need only modify it once for the change to be automatically propagated to all accounts.Please consult the PortaBilling help for a description of parameters available here. For now you may leave these with their default values. If you change them later, these changes will automatically affect all accounts created under this customer.
- Click Save.
Create accounts
An account identifies an end user who uses the service. In the case of Residential VoIP service, an account is regarded as a phone line having a unique phone number (DID). This phone number serves as an account ID within PortaBilling and is provided by your termination partners. To create an account for your customers, you must first add DIDs to the system and then set up their charging parameters. Please refer to the Managing available phone numbers (DID inventory) handbook.
- On your customer’s panel, click Accounts.
- On the Create an account panel, fill in the account information:
- ID – SIP ID, i.e., the phone number which will be used to log in to the SIP server and receive incoming calls. Click the
button to select a DID number from the available DID numbers list.
- Account role – select Phone line from the list.
- Product – choose the main product, which you would like your account to have.
- Activation date – choose the date from which the account is usable. By default, the account is activated immediately upon creation.
- Service password – together with the account ID, this password will be used to authenticate registrations and call attempts on the SIP server. It is very important to assign a secure (difficult to guess) password to prevent the account from being wrongfully entered and used to inject fraudulent calls to your network.
- Type – select Credit in this field.
- Balance control – define the way the balance of the account is controlled. Subordinate – the balance will directly depend on the customer’s balance (only the customer tops up the balance); Individual Credit Limit – this account may have its own balance and credit limit (the customer credit limit still applies.) Select Subordinate in this field.
- ID – SIP ID, i.e., the phone number which will be used to log in to the SIP server and receive incoming calls. Click the
- Click Save.
General info
- On your account’s panel, click Personal info, then click General info.
- On the General info panel, fill in the account owner’s email address in the Email field. If the account owner ever forgets the password for the web self-care pages, they will be able to reset it, and a new password will be sent to this email address.
Web self-care
- On your account’s panel, click Personal info, click General info, then click Web self-care.
- On the Web self-care panel, define credentials for the account self-care interface (such as login, password, time zone, etc.).
Additional info
- On your account’s panel, click Personal info, and click General info.
- On the General info panel, click Additional info, then click Auto-provisioning. On this panel you can assign a device to an account for automatic provisioning. Leave this option disabled for now.
Life cycle
- On your account’s panel, click Personal info, click General info, then click Life cycle.
- On the Life cycle panel, fill in the account information:
- Use an expiration date – this identifies the date when the account expires. Since we are setting up a postpaid service, which should function for a long time, leave this option disabled.
- Availability period after first usage, days – this defines the number of days the account remains active after its first use or recharge. Since we are setting up a postpaid service, which should function for a long time, leave this field blank.
- Availability period after last usage, days – this defines the number of days the account remains active after its last use or recharge. Since we are setting up a postpaid service, which should function for a long time, leave this field blank.
Service configuration
- On your account’s panel, click Services.On this panel, you can activate/deactivate various features of the voice calls service provided to this account. Please consult the PortaBilling help for a description of parameters available here. For now, you may leave these with their default values.
- Click Save.
Repeat these steps if the customer has more than one phone line (extension).
Set up dialing rules for the customer (optional)
Your customer may wish to use his own numbering format. For example, in order to make the transition from PSTN/PBX to VoIP as easy as possible, a customer will require that his users are able to dial phone numbers in exactly the same way as they used to on their PBX: 9 for an outside line, then 00 for international dialing or 0 for domestic, etc.
- On your customer’s panel, click Services, then click Voice calls.
- On the Voice calls configuration panel, click Dialing rules.
- On the Dialing rules configuration panel, enable the Dialing rules option.
- In the Dialing rule list, select Create a dialing rule.
- On the Create a dialing rule panel, use either the sample rule settings or create your own rules, such as the international dialing prefix, to adjust to your customer’s requirements.
- Click Save.
Thus, when one of this customer’s accounts tries to make a call to 900420212345678, the SIP server will send an authentication request to the billing engine. The billing engine will then apply this customer’s translation rule.
Test the whole system
- Configure your SIP user agent with the account ID and password. (See appendices for configuration guidelines for some SIP UAs). Then have your SIP user agent login to the SIP server.
- Check that the account is logged into the SIP server:
- Open the Account info panel and check that the Information about the SIP device field contains some values. These fields show the account’s current registration information.
- Try to make a call.
Check log files with log viewer
You can browse the log file from the PortaBilling web interface using a log viewer where you can see:
- Merged SIP and billing logs to provide an entire overview of the session flow;
- General information about a session in the form of a diagram between the main participants (e.g., SIP phones and PortaSwitch) with the issue description and troubleshooting instructions for the most common issues; and
- The ability to switch to the advanced log view if deeper investigation is required.
- On the navigation menu, select Toolbox, then select Trace session.
- On the Search session panel, specify the Time interval and Session type search criteria. To narrow the call log search, extend the search query by enabling additional filters and defining their values.
- Click Apply filters to produce the call attempts list.
- To obtain a detailed log view, click the
next to the call you are interested in. The Session logs panel opens, displaying general information about the call in the form of a diagram.
- If deeper investigation is required, enable the Advanced view option. In the lower frame you will see a detailed copy of all messages in this call. The upper frame provides a call-flow diagram, representing the main participating entities (SIP phone, SIP proxy, B2BUA, remote SIP UA, etc.). If you click on a particular dialogue element here, the lower frame scrolls automatically to display the corresponding message.
SIP log examples
SIP user agent attempts to make a call via the SIP server.
2017-02-01T11:21:26.633044Z|edgeproxy[25767]|POwd3XUemF|IS|1144| RECEIVED message from UDP:192.168.192.116:5060 at UDP:193.28.87.122:5060: INVITE sip:16045558901@193.28.87.122 SIP/2.0 Via: SIP/2.0/UDP 192.168.192.116:5060;branch=z9hG4bK.bYwwiuPN5;rport=5060 Max-Forwards: 70 Contact: <sip:16045558915@192.168.192.116>;+sip.instance="<urn:uuid:bbad0958-3520-43c2-9ca8-d41713f25105>" To: sip:16045558901@193.28.87.122 From: <sip:16045558915@193.28.87.122>;tag=DScSadWsg Call-ID: POwd3XUemF CSeq: 20 INVITE Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO, UPDATE Content-Type: application/sdp Supported: outbound User-Agent: Linphone/3.8.1 (belle-sip/1.4.0) Content-Length: 483 v=0 o=16045558915 3787 1313 IN IP4 192.168.192.116 s=Talk c=IN IP4 192.168.192.116 t=0 0 a=rtcp-xr:rcvr-rtt=all:10000 stat-summary=loss,dup,jitt,TTL voip-metrics m=audio 7078 RTP/AVP 96 97 98 0 8 101 99 100 a=rtpmap:96 opus/48000/2 a=fmtp:96 useinbandfec=1; stereo=0; sprop-stereo=0 a=rtpmap:97 speex/16000 a=fmtp:97 vbr=on a=rtpmap:98 speex/8000 a=fmtp:98 vbr=on a=rtpmap:101 telephone-event/48000 a=rtpmap:99 telephone-event/16000 a=rtpmap:100 telephone-event/8000
B2BUA receives this INVITE request transmitted by proxy.
2017-02-01T11:21:26.633420Z|edgeproxy[25767]|POwd3XUemF|IS|1442| SENDING message to UDP:193.28.87.210:5070 from UDP:193.28.87.122:5060: INVITE sip:16045558901@193.28.87.210:5070 SIP/2.0 Via: SIP/2.0/UDP 193.28.87.122:5060;branch=z9hG4bK-524287-1---4549614ce5ddb66b996f60efd635ce42;rport Via: SIP/2.0/UDP 192.168.192.116:5060;branch=z9hG4bK.bYwwiuPN5;rport=5060 Max-Forwards: 69 Record-Route: <sip:193.28.87.122:5060;transport=udp;lr> Contact: <sip:16045558915@192.168.192.116;pinhole=UDP:192.168.192.116:5060>;+sip.instance="<urn:uuid:bbad0958-3520-43c2-9ca8-d41713f25105>" To: sip:16045558901@193.28.87.122 From: <sip:16045558915@193.28.87.122>;tag=DScSadWsg Call-ID: POwd3XUemF CSeq: 20 INVITE Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO, UPDATE Content-Type: application/sdp Supported: outbound User-Agent: Linphone/3.8.1 (belle-sip/1.4.0) PortaOne-Requested-URI: sip:16045558901@193.28.87.122 PortaSIP-Notify: NAT=192.168.192.116;NAT-type=4 Content-Length: 483 v=0 o=16045558915 3787 1313 IN IP4 192.168.192.116 s=Talk c=IN IP4 192.168.192.116 t=0 0 a=rtcp-xr:rcvr-rtt=all:10000 stat-summary=loss,dup,jitt,TTL voip-metrics m=audio 7078 RTP/AVP 96 97 98 0 8 101 99 100 a=rtpmap:96 opus/48000/2 a=fmtp:96 useinbandfec=1; stereo=0; sprop-stereo=0 a=rtpmap:97 speex/16000 a=fmtp:97 vbr=on a=rtpmap:98 speex/8000 a=fmtp:98 vbr=on a=rtpmap:101 telephone-event/48000 a=rtpmap:99 telephone-event/16000 a=rtpmap:100 telephone-event/8000
PortaSIP requests digest authentication from the SIP UA, providing a challenge.
2017-02-01T11:21:26.666160Z|b2bua[19688]|POwd3XUemF|IS|597| SENDING message to UDP:193.28.87.122:5060 from UDP:193.28.87.210:5070: SIP/2.0 401 Unauthorized Via: SIP/2.0/UDP 193.28.87.122:5060;branch=z9hG4bK-524287-1---4549614ce5ddb66b996f60efd635ce42;rport=5060 Via: SIP/2.0/UDP 192.168.192.116:5060;branch=z9hG4bK.bYwwiuPN5;rport=5060 Record-Route: <sip:193.28.87.122:5060;transport=udp;lr> Call-ID: POwd3XUemF CSeq: 20 INVITE From: <sip:16045558915@193.28.87.122>;tag=DScSadWsg To: sip:16045558901@193.28.87.122 Server: Sippy WWW-Authenticate: Digest realm="sip-1.performance",nonce="ea215b1d48054efc60e3f9dee96360e692e5" Content-Length: 0 2017-02-01T11:21:26.666628Z|edgeproxy[25767]|POwd3XUemF|IS|598| RECEIVED message from UDP:193.28.87.210:5070 at UDP:193.28.87.122:5060: SIP/2.0 401 Unauthorized Via: SIP/2.0/UDP 193.28.87.122:5060;branch=z9hG4bK-524287-1---4549614ce5ddb66b996f60efd635ce42;rport=5060 Via: SIP/2.0/UDP 192.168.192.116:5060;branch=z9hG4bK.bYwwiuPN5;rport=5060 Record-Route: <sip:193.28.87.122:5060;transport=udp;lr> To: sip:16045558901@193.28.87.122 From: <sip:16045558915@193.28.87.122>;tag=DScSadWsg Call-ID: POwd3XUemF CSeq: 20 INVITE Server: Sippy WWW-Authenticate: Digest realm="sip-1.performance",nonce="ea215b1d48054efc60e3f9dee96360e692e5" Content-Length: 0 2017-02-01T11:21:26.666857Z|edgeproxy[25767]|POwd3XUemF|IS|492| SENDING message to UDP:192.168.192.116:5060 from UDP:193.28.87.122:5060: SIP/2.0 401 Unauthorized Via: SIP/2.0/UDP 192.168.192.116:5060;branch=z9hG4bK.bYwwiuPN5;rport=5060 Record-Route: <sip:193.28.87.122:5060;transport=udp;lr> To: sip:16045558901@193.28.87.122 From: <sip:16045558915@193.28.87.122>;tag=DScSadWsg Call-ID: POwd3XUemF CSeq: 20 INVITE Server: Sippy WWW-Authenticate: Digest realm="sip-1.performance",nonce="ea215b1d48054efc60e3f9dee96360e692e5" Content-Length: 0
SIP UA acknowledges that it has received an authorization request (ACKs will be skipped in the rest of the document.) and sends another INVITE request.
2017-02-01T11:21:26.705257Z|edgeproxy[25767]|POwd3XUemF|IS|464| RECEIVED message from UDP:192.168.192.116:5060 at UDP:193.28.87.122:5060: ACK sip:16045558901@193.28.87.122 SIP/2.0 Via: SIP/2.0/UDP 192.168.192.116:5060;branch=z9hG4bK.bYwwiuPN5;rport=5060 Max-Forwards: 70 Contact: <sip:16045558915@192.168.192.116>;+sip.instance="<urn:uuid:bbad0958-3520-43c2-9ca8-d41713f25105>" To: sip:16045558901@193.28.87.122 From: <sip:16045558915@193.28.87.122>;tag=DScSadWsg Call-ID: POwd3XUemF CSeq: 20 ACK Content-Length: 0 2017-02-01T11:21:26.705642Z|edgeproxy[25767]|POwd3XUemF|IS|1346| RECEIVED message from UDP:192.168.192.116:5060 at UDP:193.28.87.122:5060: INVITE sip:16045558901@193.28.87.122 SIP/2.0 Via: SIP/2.0/UDP 192.168.192.116:5060;branch=z9hG4bK.3LkfQ1Mu3;rport=5060 Max-Forwards: 70 Contact: <sip:16045558915@192.168.192.116>;+sip.instance="<urn:uuid:bbad0958-3520-43c2-9ca8-d41713f25105>" To: sip:16045558901@193.28.87.122 From: <sip:16045558915@193.28.87.122>;tag=DScSadWsg Call-ID: POwd3XUemF CSeq: 21 INVITE Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO, UPDATE Content-Type: application/sdp Supported: outbound User-Agent: Linphone/3.8.1 (belle-sip/1.4.0) Authorization: Digest realm="sip-1.performance", nonce="ea215b1d48054efc60e3f9dee96360e692e5", username="16045558915", uri="sip:16045558901@193.28.87.122", response="fde8d9b6581af9937b46ff9125261d49" Content-Length: 483 v=0 o=16045558915 3787 1313 IN IP4 192.168.192.116 s=Talk c=IN IP4 192.168.192.116 t=0 0 a=rtcp-xr:rcvr-rtt=all:10000 stat-summary=loss,dup,jitt,TTL voip-metrics m=audio 7078 RTP/AVP 96 97 98 0 8 101 99 100 a=rtpmap:96 opus/48000/2 a=fmtp:96 useinbandfec=1; stereo=0; sprop-stereo=0 a=rtpmap:97 speex/16000 a=fmtp:97 vbr=on a=rtpmap:98 speex/8000 a=fmtp:98 vbr=on a=rtpmap:101 telephone-event/48000 a=rtpmap:99 telephone-event/16000 a=rtpmap:100 telephone-event/8000
Proxy receives a reply to the authorization request, with a response to the challenge.
2017-02-01T11:21:26.732244Z|b2bua[19688]|POwd3XUemF|IS|1645| RECEIVED message from UDP:193.28.87.122:5060 at UDP:193.28.87.210:5070: INVITE sip:16045558901@193.28.87.210:5070 SIP/2.0 Via: SIP/2.0/UDP 193.28.87.122:5060;branch=z9hG4bK-524287-1---98a275dd1478e5ea44c8274aa9c751b2;rport Via: SIP/2.0/UDP 192.168.192.116:5060;branch=z9hG4bK.3LkfQ1Mu3;rport=5060 Max-Forwards: 69 Record-Route: <sip:193.28.87.122:5060;transport=udp;lr> Contact: <sip:16045558915@192.168.192.116;pinhole=UDP:192.168.192.116:5060>;+sip.instance="<urn:uuid:bbad0958-3520-43c2-9ca8-d41713f25105>" To: sip:16045558901@193.28.87.122 From: <sip:16045558915@193.28.87.122>;tag=DScSadWsg Call-ID: POwd3XUemF CSeq: 21 INVITE Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO, UPDATE Content-Type: application/sdp Supported: outbound User-Agent: Linphone/3.8.1 (belle-sip/1.4.0) Authorization: Digest realm="sip-1.performance", nonce="ea215b1d48054efc60e3f9dee96360e692e5", username="16045558915", uri="sip:16045558901@193.28.87.122", response="fde8d9b6581af9937b46ff9125261d49" PortaOne-Requested-URI: sip:16045558901@193.28.87.122 PortaSIP-Notify: NAT=192.168.192.116;NAT-type=4 Content-Length: 483 v=0 o=16045558915 3787 1313 IN IP4 192.168.192.116 s=Talk c=IN IP4 192.168.192.116 t=0 0 a=rtcp-xr:rcvr-rtt=all:10000 stat-summary=loss,dup,jitt,TTL voip-metrics m=audio 7078 RTP/AVP 96 97 98 0 8 101 99 100 a=rtpmap:96 opus/48000/2 a=fmtp:96 useinbandfec=1; stereo=0; sprop-stereo=0 a=rtpmap:97 speex/16000 a=fmtp:97 vbr=on a=rtpmap:98 speex/8000 a=fmtp:98 vbr=on a=rtpmap:101 telephone-event/48000 a=rtpmap:99 telephone-event/16000 a=rtpmap:100 telephone-event/8000
B2BUA is informed that the request has been received and is being processed (100 Trying responses will be omitted in the rest of the document.)
2017-02-01T11:21:26.737441Z|b2bua[19688]|POwd3XUemF|IS|585| SENDING message to UDP:193.28.87.122:5060 from UDP:193.28.87.210:5070: SIP/2.0 100 Trying Via: SIP/2.0/UDP 193.28.87.122:5060;branch=z9hG4bK-524287-1---98a275dd1478e5ea44c8274aa9c751b2;rport=5060 Via: SIP/2.0/UDP 192.168.192.116:5060;branch=z9hG4bK.3LkfQ1Mu3;rport=5060 Record-Route: <sip:193.28.87.122:5060;transport=udp;lr> Call-ID: POwd3XUemF CSeq: 21 INVITE From: <sip:16045558915@193.28.87.122>;tag=DScSadWsg To: sip:16045558901@193.28.87.122 Server: Sippy Allow: INVITE, ACK, BYE, CANCEL, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS, UPDATE Content-Length: 0 2017-02-01T11:21:26.739497Z|b2bua[19688]|POwd3XUemF|IG|55| Source conf-id is not trusted, generating new conf-id
B2BUA sends an authorization request to the billing.
2017-02-01T11:21:26.740523Z|b2bua[19688]|POwd3XUemF|IA|1241| sending AAA request: b2bua_request_serial = 6BBA066E User-Name = "16045558915" Digest-Realm = "sip-1.performance" Digest-Nonce = "ea215b1d48054efc60e3f9dee96360e692e5" Digest-Method = "INVITE" Digest-URI = "sip:16045558901@193.28.87.122" Digest-Algorithm = "MD5" Digest-Username = "16045558915" Digest-Response = "fde8d9b6581af9937b46ff9125261d49" Calling-Station-Id = "16045558915" Called-Station-Id = "16045558901" h323-conf-id = "D241210E 814932D0 742B5D37 7482DD36" call-id = "POwd3XUemF" h323-remote-address = "192.168.192.116" PortaOne-Transport-Protocol = "SIP" h323-ivr-out = "PortaBilling_AuthMethod:INVITE" PortaOne-Service-Features = "routing=1;version=25.0;ivrs=internal" h323-ivr-out = "PortaBilling_Seed:2930590810" PortaOne-Calling-Party = "display-id=16045558915;privacy=0" h323-ivr-out = "PortaSIP_Aux_Info:auth_life=128470/1/0;auth_cnt=1;CC_now=128470/1;pid=19688;request_type=routing"
B2BUA sends INVITE to the gateway/proxy in the route list.
2017-02-01T11:21:26.970464Z|b2bua[19688]|POwd3XUemF|IS|1354| SENDING message to UDP:193.28.87.122:5060 from UDP:193.28.87.210:5070: INVITE sip:16045558901@192.168.222.48:5060 SIP/2.0 Via: SIP/2.0/UDP 193.28.87.210:5070;rport;branch=z9hG4bK-ww4asa7urdxgqn2u Route: <sip:193.28.87.122:5060;transport=udp;lr;pinhole=UDP:192.168.222.48:5060> Max-Forwards: 70 Call-ID: POwd3XUemF CSeq: 186 INVITE From: <sip:16045558915@193.28.87.122>;tag=w6ab6y377jpelg2h.o To: <sip:16045558901@193.28.87.122> Contact: sip:193.28.87.210:5070 Expires: 300 User-Agent: Sippy cisco-GUID: 746730273-3581942256-3384553610-3384553610 h323-conf-id: 746730273-3581942256-3384553610-3384553610 P-Asserted-Identity: <sip:16045558915@193.28.87.122> Remote-Party-ID: <sip:16045558915@193.28.87.122>;party=calling Content-disposition: session Portasip-3264-action: offer 1 Allow: INVITE, ACK, BYE, CANCEL, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS, UPDATE Content-Length: 412 Content-Type: application/sdp v=0 o=Sippy 4421442246427894274 1 IN IP4 193.28.87.210 s=Talk t=0 0 m=audio 43278 RTP/AVP 96 97 98 0 8 101 99 100 c=IN IP4 193.28.87.210 a=rtpmap:96 opus/48000/2 a=fmtp:96 useinbandfec=1; stereo=0; sprop-stereo=0 a=rtpmap:97 speex/16000 a=fmtp:97 vbr=on a=rtpmap:98 speex/8000 a=fmtp:98 vbr=on a=rtpmap:101 telephone-event/48000 a=rtpmap:99 telephone-event/16000 a=rtpmap:100 telephone-event/8000
No reply is received from this gateway/proxy, so PortaSIP re-sends the invite message several times.
2017-02-01T11:21:26.972351Z|edgeproxy[25767]|POwd3XUemF|IS|1360| RECEIVED message from UDP:193.28.87.210:5070 at UDP:193.28.87.122:5060: INVITE sip:16045558901@192.168.222.48:5060 SIP/2.0 Via: SIP/2.0/UDP 193.28.87.210:5070;rport=5070;branch=z9hG4bK-ww4asa7urdxgqn2u Max-Forwards: 70 Route: <sip:193.28.87.122:5060;transport=udp;lr;pinhole=UDP:192.168.222.48:5060> Contact: sip:193.28.87.210:5070 To: <sip:16045558901@193.28.87.122> From: <sip:16045558915@193.28.87.122>;tag=w6ab6y377jpelg2h.o Call-ID: POwd3XUemF CSeq: 186 INVITE Expires: 300 Allow: INVITE, ACK, BYE, CANCEL, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS, UPDATE Content-Disposition: session Content-Type: application/sdp User-Agent: Sippy P-Asserted-Identity: <sip:16045558915@193.28.87.122> Remote-Party-ID: <sip:16045558915@193.28.87.122>;party=calling cisco-GUID: 746730273-3581942256-3384553610-3384553610 h323-conf-id: 746730273-3581942256-3384553610-3384553610 Portasip-3264-action: offer 1 Content-Length: 412 v=0 o=Sippy 4421442246427894274 1 IN IP4 193.28.87.210 s=Talk t=0 0 m=audio 43278 RTP/AVP 96 97 98 0 8 101 99 100 c=IN IP4 193.28.87.210 a=rtpmap:96 opus/48000/2 a=fmtp:96 useinbandfec=1; stereo=0; sprop-stereo=0 a=rtpmap:97 speex/16000 a=fmtp:97 vbr=on a=rtpmap:98 speex/8000 a=fmtp:98 vbr=on a=rtpmap:101 telephone-event/48000 a=rtpmap:99 telephone-event/16000 a=rtpmap:100 telephone-event/8000
Finally, the gateway is available, so we get a reply stating that it has started to process the call.
2017-02-01T11:21:27.012370Z|edgeproxy[25767]|POwd3XUemF|IS|622| RECEIVED message from UDP:192.168.222.48:5060 at UDP:193.28.87.122:5060: SIP/2.0 100 Trying Via: SIP/2.0/UDP 193.28.87.122:5060;branch=z9hG4bK-524287-1---a3a08444dbf8faacc9a14395b2b56965 Via: SIP/2.0/UDP 193.28.87.122:5060;branch=z9hG4bK-524287-1---b46e97ef6f9e4c7740bc99a129d4b8c0;rport Via: SIP/2.0/UDP 193.28.87.210:5070;rport=5070;branch=z9hG4bK-ww4asa7urdxgqn2u Record-Route: <sip:193.28.87.122:5060;transport=udp;lr> To: <sip:16045558901@193.28.87.122> From: <sip:16045558915@193.28.87.122>;tag=w6ab6y377jpelg2h.o Call-ID: POwd3XUemF CSeq: 186 INVITE Server: Linksys/SPA942-6.1.5(a) Content-Length: 0
The SIP proxy sends a ringback, so the user on the SIP phone will hear ringing.
2017-02-01T11:21:27.060091Z|edgeproxy[25767]|POwd3XUemF|IS|567| SENDING message to UDP:192.168.192.116:5060 from UDP:193.28.87.122:5060: SIP/2.0 180 Ringing Via: SIP/2.0/UDP 192.168.192.116:5060;branch=z9hG4bK.3LkfQ1Mu3;rport=5060 Record-Route: <sip:193.28.87.122:5060;transport=udp;lr> Contact: sip:193.28.87.210:5070 To: sip:16045558901@193.28.87.122;tag=khapqwb6zbbogyl2.i From: <sip:16045558915@193.28.87.122>;tag=DScSadWsg Call-ID: POwd3XUemF CSeq: 21 INVITE Allow: INVITE, ACK, BYE, CANCEL, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS, UPDATE Server: Sippy Portasip-3264-action: none 1 Content-Length: 0
The called party answers the call.
2017-02-01T11:21:33.019170Z|edgeproxy[25767]|POwd3XUemF|IS|1025| RECEIVED message from UDP:192.168.222.48:5060 at UDP:193.28.87.122:5060: SIP/2.0 200 OK Via: SIP/2.0/UDP 193.28.87.122:5060;branch=z9hG4bK-524287-1---a3a08444dbf8faacc9a14395b2b56965 Via: SIP/2.0/UDP 193.28.87.122:5060;branch=z9hG4bK-524287-1---b46e97ef6f9e4c7740bc99a129d4b8c0;rport Via: SIP/2.0/UDP 193.28.87.210:5070;rport=5070;branch=z9hG4bK-ww4asa7urdxgqn2u Record-Route: <sip:193.28.87.122:5060;transport=udp;lr> Contact: "16045558901" <sip:16045558901@192.168.222.48:5060> To: <sip:16045558901@193.28.87.122>;tag=80cf06e8ca14b820i1 From: <sip:16045558915@193.28.87.122>;tag=w6ab6y377jpelg2h.o Call-ID: POwd3XUemF CSeq: 186 INVITE Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER Content-Type: application/sdp Server: Linksys/SPA942-6.1.5(a) Supported: replaces Content-Length: 205 v=0 o=- 73577 73577 IN IP4 192.168.222.48 s=- c=IN IP4 192.168.222.48 t=0 0 m=audio 16420 RTP/AVP 0 99 a=rtpmap:0 PCMU/8000 a=rtpmap:99 telephone-event/8000 a=fmtp:99 0-15 a=ptime:20 a=sendrecv
The called party hangs up; the call termination process is started.
2017-02-01T11:21:44.545219Z|edgeproxy[25767]|POwd3XUemF|IS|457| RECEIVED message from UDP:192.168.222.48:5060 at UDP:193.28.87.122:5060: BYE sip:193.28.87.210:5070 SIP/2.0 Via: SIP/2.0/UDP 192.168.222.48:5060;branch=z9hG4bK-83f50038 Max-Forwards: 70 Route: <sip:193.28.87.122:5060;transport=udp;lr> To: <sip:16045558915@193.28.87.122>;tag=w6ab6y377jpelg2h.o From: <sip:16045558901@193.28.87.122>;tag=80cf06e8ca14b820i1 Call-ID: POwd3XUemF CSeq: 101 BYE User-Agent: Linksys/SPA942-6.1.5(a) Content-Length: 0
B2BUA confirms call disconnection.
2017-02-01T11:21:44.596446Z|edgeproxy[25767]|POwd3XUemF|IS|448| SENDING message to UDP:192.168.222.48:5060 from UDP:193.28.87.122:5060: SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.222.48:5060;branch=z9hG4bK-83f50038;rport=5060 To: <sip:16045558915@193.28.87.122>;tag=w6ab6y377jpelg2h.o From: <sip:16045558901@193.28.87.122>;tag=80cf06e8ca14b820i1 Call-ID: POwd3XUemF CSeq: 101 BYE Allow: INVITE, ACK, BYE, CANCEL, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS, UPDATE Server: Sippy Content-Length: 0
SIP user agent receives BYE and confirms end of the calls.
2017-02-01T11:21:44.705358Z|edgeproxy[25767]|POwd3XUemF|IS|849| SENDING message to UDP:192.168.192.116:5060 from UDP:193.28.87.122:5060: BYE sip:16045558915@192.168.192.116 SIP/2.0 Via: SIP/2.0/UDP 193.28.87.122:5060;branch=z9hG4bK-524287-1---33674005c0122524c97d1a497c2b981e;rport Via: SIP/2.0/UDP 193.28.87.122:5060;branch=z9hG4bK-524287-1---2751cb065207e9850ecb6b0a5300eabc;rport Via: SIP/2.0/UDP 193.28.87.210:5070;rport=5070;branch=z9hG4bK-hpv6c6xwclaserxf Max-Forwards: 69 Contact: sip:193.28.87.210:5070 To: <sip:16045558915@193.28.87.122>;tag=DScSadWsg From: sip:16045558901@193.28.87.122;tag=khapqwb6zbbogyl2.i Call-ID: POwd3XUemF CSeq: 778 BYE Allow: INVITE, ACK, BYE, CANCEL, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS, UPDATE User-Agent: Sippy cisco-GUID: 3527483662-2169058000-1948998967-1954733366 h323-conf-id: 3527483662-2169058000-1948998967-1954733366 Content-Length: 0 2017-02-01T11:21:44.759095Z|edgeproxy[25767]|POwd3XUemF|IS|613| RECEIVED message from UDP:192.168.192.116:5060 at UDP:193.28.87.122:5060: SIP/2.0 200 Ok Via: SIP/2.0/UDP 193.28.87.122:5060;branch=z9hG4bK-524287-1---33674005c0122524c97d1a497c2b981e;rport Via: SIP/2.0/UDP 193.28.87.122:5060;branch=z9hG4bK-524287-1---2751cb065207e9850ecb6b0a5300eabc;rport Via: SIP/2.0/UDP 193.28.87.210:5070;rport=5070;branch=z9hG4bK-hpv6c6xwclaserxf To: <sip:16045558915@193.28.87.122>;tag=DScSadWsg From: <sip:16045558901@193.28.87.122>;tag=khapqwb6zbbogyl2.i Call-ID: POwd3XUemF CSeq: 778 BYE Supported: outbound User-Agent: Linphone/3.8.1 (belle-sip/1.4.0) Content-Length: 0
B2BUA sends stop accounting to the billing.
2017-02-01T11:21:45.127217Z|b2bua[19688]|POwd3XUemF|IA|1679| sending Acct Stop (Originate): h323-call-origin = "originate" h323-call-type = "VoIP" PortaOne-Transport-Protocol = "SIP" h323-setup-time = "11:21:26.939 GMT Wed Feb 1 2017" User-Name = "16045558915" Calling-Station-Id = "16045558915" Called-Station-Id = "16045558901" h323-conf-id = "D241210E 814932D0 742B5D37 7482DD36" call-id = "POwd3XUemF" Acct-Session-Id = "POwd3XUemF" h323-remote-address = "SIP-UA" h323-ivr-out = "PortaSIP_Aux_Info:CC=128470/2;route_seq=(2, 0);route_id=140470106466976;cc_id=140470176278248;pid=19688;forward-on-fail=yes" h323-ivr-out = "PortaBilling_RatePattern:VOICEONNET\RX|16045558901" h323-ivr-out = "PortaBilling_AccessCode:OUTGOING" h323-ivr-out = "PortaBilling_Seed:2930590810" h323-remote-id = "SIP-UA" PortaOne-Calling-Party = "x=2509;bill-to=16045558915;media-time=12;net=0;ip=192.168.192.116;site=2509" PortaOne-Called-Party = "x=2509;bill-to=16045558901;net=0;site=2509" h323-connect-time = "11:21:33.075 GMT Wed Feb 1 2017" h323-voice-quality = "0" Acct-Terminate-Cause = "User-Request" h323-disconnect-cause = "0" alert-timepoint = "11:21:27.055 GMT Wed Feb 1 2017" h323-disconnect-time = "11:21:45.126 GMT Wed Feb 1 2017" Acct-Session-Time = "13" Acct-Status-Type = "Stop" Event-Timestamp = "1485948105"
The call is finished.
BE log examples
PortaBilling receives the authorization request.
Feb 01 11:21:26 [0]: Processing request (BE ver:mr61,cluster:25393)... Feb 01 11:21:26 [3]: Attributes: NAS-IP-Address = '193.28.87.122' User-Name = '16045558915' Called-Station-Id = '16045558901' Calling-Station-Id = '16045558915' h323-conf-id = 'D241210E 814932D0 742B5D37 7482DD36' call-id = 'POwd3XUemF' Digest-Username = '16045558915' Digest-Realm = 'sip-1.performance' Digest-Nonce = 'ea215b1d48054efc60e3f9dee96360e692e5' Digest-URI = 'sip:16045558901@193.28.87.122' Digest-Method = 'INVITE' Digest-Algorithm = 'MD5' Digest-Response = 'fde8d9b6581af9937b46ff9125261d49' h323-remote-address = '192.168.192.116' PortaOne-Transport-Protocol = 'SIP' h323-ivr-out = 'PortaBilling_AuthMethod:INVITE' PortaOne-Service-Features = 'routing=1;version=25.0;ivrs=internal' h323-ivr-out = 'PortaBilling_Seed:2930590810' PortaOne-Calling-Party = 'display-id=16045558915;privacy=0' h323-ivr-out = 'PortaSIP_Aux_Info:auth_life=128470/1/0;auth_cnt=1;CC_now=128470/1;pid=19688;request_type=routing' NAS-Port = '5060' Feb 01 11:21:26 [0]: <Session id="D241210E 814932D0 742B5D37 7482DD36" valid="1" i_service_type="3" i_env="8" created="Feb 01 11:21:26" expires="Feb 01 11:21:56"/> Feb 01 11:21:26 [3]: Processing account authorization: <Authenticate::INVITE nas="ak-techwr.portaone.com" at="Feb 01 11:21:26" from="16045558915" serial="0"/> requested by <Node i="1803" name="PortaSIP" vendorCode="portaone" typeCode="portasip" aaaProtocol="RADIUS"/> Feb 01 11:21:26 [4]: Found account: <Account i="2130584" id="16045558915" model="credit" balance="0.00000" activation="2017 Jan 20 23:00:00"/> of <Customer i="2509" name="John Doe" balance="-43.15945" limit="1000.00000"/>
Account information is located in the database.
Feb 01 11:21:26
[4]: Verification of password using method 'digest_response': success
Password verification is successful.
Feb 01 11:21:26 [4]: Gained the new deposit for this session: <Session::Deposit i_account="2130584" i_customer="2509" session_id="D241210E 814932D0 742B5D37 7482DD36" amount="1043.15945" customer_lock="1" created="2017 Feb 01 11:21:26"/> Feb 01 11:21:26 [5]: Translated "16045558901" stripping feature codes to "16045558901" in <DialRule i="-1" name="^Implicit"/> evaluating "feature_code($_);" Feb 01 11:21:26 [5]: Translated "16045558901" to canonic "16045558901" in <DialRule i="-1" name="cld translate override"/> evaluating "s/^\*3164\*//;" Feb 01 11:21:26 [5]: Translated "16045558901" to canonic "16045558901" in <DialRule i="-1" name="^Implicit"/> evaluating "s/^\+//;" Feb 01 11:21:26 [4]: Found account: <Account i="2130584" id="16045558901" model="credit" balance="0.00000" activation="2017 Jan 20 23:00:00"/> of <Customer i="2509" name="John Doe" balance="-43.15945" limit="1000.00000"/> Feb 01 11:21:26 [3]: ::on_authorize_account_translate[voice]: Found destination <Account i="2123423" id="16045558901" model="credit" balance="0.00022" activation="2017 Jan 04 23:00:00"/> matching id '16045558901' for cld '16045558901' Feb 01 11:21:45 [4]: Synchronized: <Account i="2130584" id="16045558915" model="credit" balance="0.00000" activation="2017 Jan 20 23:00:00"/> Feb 01 11:21:45 [4]: Synchronized: <Customer i="2509" name="John Doe" balance="-43.15945" limit="1000.00000"/>
The phone number is not changed as it is already in the E.164 format.
Feb 01 11:21:26 [5]: Looking for Porta::Rating::Rate::Standard matching <RateLookup pattern="VOICEONNET\RX|16045558901" seed="2930590810" effectiveFrom="2017 Feb 01 11:21:26" effectiveTo="2017 Feb 01 11:23:26" from="2017 Feb 01 11:21:26" to="2017 Feb 01 11:23:26" bill="2017 Feb 01 11:21:26"/> in <Tariff i="2461" name="SIP Phone Subscribers"/> Feb 01 11:21:26 [3]: Subtracting locked session deposits 1043.15945 from the total customer's available funds 1043.15945: 0.00000 Feb 01 11:21:26 [4]: Got <Quota base="session-time" granted="62589567" presented="62589567" consumed="0" retained="0" unit="second" allocated-funds="1043.15945" history="availableFunds(1043.15945)+62589567x1@0.00100"/>
Maximum session time is calculated according to the available funds and rate.
Feb 01 11:21:26
[4]: Routing result:
<Route::PointList route-lookup-cld="16045558901" cld="16045558901"
i_routing_plan="-1" routing_plan_name="LCR with all Available
Routes">
<Route::Point order="+0+0+0+0+0+0+0.00000000"
p="INTERNAL" cld="16045558901" gwname="INTERNAL"
description="Calls to Media Server"/>
</Route::PointList>
Looking for possible routes.
Feb 01 11:21:26 [3]: Computing routing ... Feb 01 11:21:26 [3]: AAA::Authentication acknowledge response, attributes: h323-return-code = '0' h323-ivr-in = 'PortaBilling_CompleteNumber:16045558901' h323-ivr-in = 'DURATION:62589567' h323-ivr-in = 'Product:SIP Subscribers' h323-ivr-in = 'Tariff:SIP Phone Subscribers' h323-ivr-in = 'PortaBilling_NodeId:ak-techwr.portaone.com' h323-ivr-in = 'PortaBilling_AccessCode:OUTGOING' h323-ivr-in = 'PortaBilling_Seed:2930590810' h323-ivr-in = 'PortaBilling_RatePattern:VOICEONNET\RX|16045558901' h323-ivr-in = 'PortaBilling_Authorize:base=session-time;avail=62589567;retained=0;expires=1491132081' h323-billing-model = '0' PortaOne-Service-Features = 'moh=1' h323-credit-time = '62589567' PortaOne-Calling-Party = 'site=2509;bill-to=16045558915;x=2509;net=0' PortaOne-Called-Party = 'site=2509;bill-to=16045558901;x=2509;net=0' h323-currency = 'USD' h323-preferred-lang = 'en' Framed-Route = 'r=;g-hunt=seq' Framed-Route = 'p_=SIP-UA;gwname=SIP-UA;expires=0;forward-on-fail=1;moh=1;patience=30;grp=-;acct=trying-start-stop' Framed-Route = 'r_=;bill-to=16045558901;rate-pattern=INCOMING%5CNRX|16045558901;access-code=INCOMING;h323-cid=1' Framed-Route = 'p__=SIP-UA;gwname=SIP-UA;expires=30;moh=1;patience=30;grp=-;acct=trying-start-stop' Framed-Route = 'r__=;rate-pattern=UMRECORD|16045558901;access-code=FOLLOWME;d.bill-to=;d.net=;d.x=;d.s=;f.bill-to=16045558901;f.net=0;f.x=2509;f.s=2509;fcli=16045558901;h323-cid=2' Framed-Route = 'p___=INTERNAL;gwname=INTERNAL;expires=300;d.bill-to=16045558901;clit=1;moh=1;patience=30;app-type=UMRECORD' Feb 01 11:21:26 [4]: This session expires in cache at Feb 01 11:21:56 (in 30s) Feb 01 11:21:26 [0]: ...Done Authorize::INVITE in 0.179246 seconds, 0.052289 spent in SQL queries. Dispatch+activation: 0.000107+0.000507 seconds.
An authorization response is sent to PortaSIP.
Feb 01 11:21:45
[0]: Processing request (BE ver:mr60,cluster:25393)...
Feb 01 11:21:45 [3]: Attributes:
NAS-IP-Address =
'193.28.87.122'
User-Name =
'16045558915'
Called-Station-Id =
'16045558901'
Calling-Station-Id =
'16045558915'
Acct-Status-Type =
'Stop'
h323-call-origin =
'answer'
h323-call-type =
'VoIP'
h323-setup-time =
'11:21:26.936 GMT Wed Feb 1 2017'
alert-timepoint =
'11:21:27.055 GMT Wed Feb 1 2017'
h323-connect-time =
'11:21:33.102 GMT Wed Feb 1 2017'
h323-disconnect-time =
'11:21:45.125 GMT Wed Feb 1 2017'
h323-disconnect-cause =
'0'
h323-voice-quality =
'0'
h323-conf-id =
'D241210E 814932D0 742B5D37 7482DD36'
call-id =
'POwd3XUemF'
Acct-Session-Id =
'POwd3XUemF'
Acct-Session-Time =
'13'
Acct-Delay-Time =
'0'
PortaOne-Transport-Protocol =
'SIP'
h323-remote-address =
'192.168.192.116'
h323-ivr-out =
'PortaBilling_AccessCode:OUTGOING'
h323-ivr-out =
'PortaBilling_Seed:2930590810'
h323-ivr-out =
'PortaSIP_Aux_Info:CC=128470/1;cc_id=140470176278248;pid=19688'
PortaOne-Called-Party =
'x=2509;bill-to=16045558901;net=0;site=2509'
Acct-Terminate-Cause =
'User-Request'
Event-Timestamp =
'1485948105'
NAS-Port =
'5060'
The billing re-uses information in the call cache to speed up account info lookup.
Feb 01 11:21:45 [0]: <Session id="D241210E 814932D0 742B5D37 7482DD36" valid="1" i_service_type="3" i_env="8" created="Feb 01 11:21:26" modified="Feb 01 11:21:45" expires="Feb 01 11:21:56"/> Feb 01 11:21:45 [3]: Processing accounting: <Accounting::VOICE-answer-VoIP::Stop nas="ak-techwr.portaone.com" at="Feb 01 11:21:45" from="16045558915" cld="16045558901" serial="3"/> Feb 01 11:21:45 [4]: Copied account: <Account i="2130584" id="16045558915" model="credit" balance="0.00000" activation="2017 Jan 20 23:00:00"/> of <Customer i="2509" name="John Doe" balance="-43.15945" limit="1000.00000"/> from <Authorize::INVITE nas="ak-techwr.portaone.com" at="Feb 01 11:21:26" from="16045558915" cld="16045558901" serial="0"/> into current request Feb 01 11:21:45 [4]: Synchronized: <Account i="2130584" id="16045558915" model="credit" balance="0.00000" activation="2017 Jan 20 23:00:00"/> Feb 01 11:21:45 [4]: Synchronized: <Customer i="2509" name="John Doe" balance="-43.15945" limit="1000.00000"/> Feb 01 11:21:45 [4]: Successful update of the session deposit: <Session::Deposit i_account="2130584" i_customer="2509" session_id="D241210E 814932D0 742B5D37 7482DD36" amount="1043.15945" customer_lock="1" opened="2017 Feb 01 11:21:26" closing="2017 Feb 01 11:21:50"/> Feb 01 11:21:45 [3]: Found <Connection i="2015" name="SIP-to-SIP (on-net) calls" matchClass="VOICE/originate/VoIP:SIP"/> matched by routingGatewayId('SIP-UA'), remoteIp(empty), routingCld(empty) Feb 01 11:21:45 [4]: Found vendor: <Vendor i="1699" name="Internal Vendor"/> Feb 01 11:21:45 [3]: AAA::Accounting response, no attributes. Feb 01 11:21:45 [4]: This session closes in cache at Feb 01 11:22:15 (in 30s) Feb 01 11:21:45 [0]: ...Done Accounting::VOICE-originate-VoIP::Stop in 0.228812 seconds, 0.183026 spent in SQL queries. Dispatch+activation: 0.002478+0.105232 seconds.
Connection matched.
Feb 01 11:21:45
[0]: Processing request (BE ver:mr60,cluster:25393)...
Feb 01 11:21:45 [3]: Attributes:
NAS-IP-Address =
'193.28.87.122'
User-Name =
'16045558915'
Called-Station-Id =
'16045558901'
Calling-Station-Id =
'16045558915'
Acct-Status-Type =
'Stop'
h323-call-origin =
'answer'
h323-call-type =
'VoIP'
h323-setup-time =
'11:21:26.936 GMT Wed Feb 1 2017'
alert-timepoint =
'11:21:27.055 GMT Wed Feb 1 2017'
h323-connect-time =
'11:21:33.102 GMT Wed Feb 1 2017'
h323-disconnect-time =
'11:21:45.125 GMT Wed Feb 1 2017'
h323-disconnect-cause =
'0'
h323-voice-quality =
'0'
h323-conf-id =
'D241210E 814932D0 742B5D37 7482DD36'
call-id =
'POwd3XUemF'
Acct-Session-Id =
'POwd3XUemF'
Acct-Session-Time =
'13'
Acct-Delay-Time =
'0'
PortaOne-Transport-Protocol =
'SIP'
h323-remote-address =
'192.168.192.116'
h323-ivr-out =
'PortaBilling_AccessCode:OUTGOING'
h323-ivr-out =
'PortaBilling_Seed:2930590810'
h323-ivr-out =
'PortaSIP_Aux_Info:CC=128470/1;cc_id=140470176278248;pid=19688'
PortaOne-Called-Party =
'x=2509;bill-to=16045558901;net=0;site=2509'
Acct-Terminate-Cause =
'User-Request'
Event-Timestamp =
'1485948105'
NAS-Port =
'5060'
A start accounting record about the incoming call leg is received.
Feb 01 11:21:45 [0]: <Session id="D241210E 814932D0 742B5D37 7482DD36" valid="1" i_service_type="3" i_env="8" created="Feb 01 11:21:26" modified="Feb 01 11:21:45" closing="Feb 01 11:22:15"/> Feb 01 11:21:45 [3]: Processing accounting: <Accounting::VOICE-originate-VoIP::Stop nas="ak-techwr.portaone.com" at="Feb 01 11:21:45" from="16045558915" cld="16045558901" serial="4"/> Feb 01 11:21:45 [4]: Copied account: <Account i="2130584" id="16045558915" model="credit" balance="0.00000" activation="2017 Jan 20 23:00:00"/> of <Customer i="2509" name="John Doe" balance="-43.15945" limit="1000.00000"/> from <Authorize::INVITE nas="ak-techwr.portaone.com" at="Feb 01 11:21:26" from="16045558915" cld="16045558901" serial="0"/> into current request Feb 01 11:21:45 [4]: ::on_accounting_account_billing[voice]: Obtained original subscriber IP '192.168.192.116' from h323-remote-address in <Accounting::VOICE-answer-VoIP::Stop nas="ak-techwr.portaone.com" at="Feb 01 11:21:45" from="16045558915" cld="16045558901" serial="3"/> Feb 01 11:21:45 [4]: Unlock existent session deposit: <Session::Deposit i_account="2130584" i_customer="2509" session_id="D241210E 814932D0 742B5D37 7482DD36" amount="1043.15945" customer_lock="1" opened="2017 Feb 01 11:21:26" expires="2017 Apr 02 11:21:26"/> Feb 01 11:21:45 [4]: Successful update of the session deposit: <Session::Deposit i_account="2130584" i_customer="2509" session_id="D241210E 814932D0 742B5D37 7482DD36" amount="1043.15945" customer_lock="1" opened="2017 Feb 01 11:21:26" closing="2017 Feb 01 11:21:50"/> Feb 01 11:21:45 [4]: No connection to charge this access node answer leg.
The billing re-uses information in the call cache to speed up account info lookup.
Feb 01 11:21:45 [3]: AAA::Accounting response, no attributes. Feb 01 11:21:45 [4]: This session closes in cache at Feb 01 11:22:15 (in 30s) Feb 01 11:21:45 [0]: ...Done Accounting::VOICE-answer-VoIP::Stop in 0.106162 seconds, 0.062022 spent in SQL queries. Dispatch+activation: 0.000139+0.001023 seconds. Feb 01 11:21:45 [0]: Processing request (BE ver:mr60,cluster:25393)... Feb 01 11:21:45 [3]: Attributes: NAS-IP-Address = '193.28.87.122' User-Name = '16045558915' Called-Station-Id = '16045558901' Calling-Station-Id = '16045558915' Acct-Status-Type = 'Stop' h323-call-origin = 'originate' h323-call-type = 'VoIP' h323-setup-time = '11:21:26.939 GMT Wed Feb 1 2017' alert-timepoint = '11:21:27.055 GMT Wed Feb 1 2017' h323-connect-time = '11:21:33.075 GMT Wed Feb 1 2017' h323-disconnect-time = '11:21:45.126 GMT Wed Feb 1 2017' h323-disconnect-cause = '0' h323-voice-quality = '0' h323-conf-id = 'D241210E 814932D0 742B5D37 7482DD36' call-id = 'POwd3XUemF' Acct-Session-Id = 'POwd3XUemF' Acct-Session-Time = '13' Acct-Delay-Time = '0' PortaOne-Transport-Protocol = 'SIP' h323-remote-address = 'SIP-UA' h323-ivr-out = 'PortaSIP_Aux_Info:CC=128470/2;route_seq=(2, 0);route_id=140470106466976;cc_id=140470176278248;pid=19688;forward-on-fail=yes' h323-ivr-out = 'PortaBilling_RatePattern:VOICEONNET\RX|16045558901' h323-ivr-out = 'PortaBilling_AccessCode:OUTGOING' h323-ivr-out = 'PortaBilling_Seed:2930590810' h323-remote-id = 'SIP-UA' PortaOne-Calling-Party = 'x=2509;bill-to=16045558915;media-time=12;net=0;ip=192.168.192.116;site=2509' PortaOne-Called-Party = 'x=2509;bill-to=16045558901;net=0;site=2509' Acct-Terminate-Cause = 'User-Request' Event-Timestamp = '1485948105' NAS-Port = '5060'
The call is terminated, and stop accounting for one of the call legs is received.
Feb 01 11:21:45 [0]: <Session id="D241210E 814932D0 742B5D37 7482DD36" valid="1" i_service_type="3" i_env="8" created="Feb 01 11:21:26" modified="Feb 01 11:21:45" expires="Feb 01 11:21:56"/> Feb 01 11:21:45 [3]: Processing accounting: <Accounting::VOICE-answer-VoIP::Stop nas="ak-techwr.portaone.com" at="Feb 01 11:21:45" from="16045558915" cld="16045558901" serial="3"/> Feb 01 11:21:45 [4]: Copied account: <Account i="2130584" id="16045558915" model="credit" balance="0.00000" activation="2017 Jan 20 23:00:00"/> of <Customer i="2509" name="John Doe" balance="-43.15945" limit="1000.00000"/> from <Authorize::INVITE nas="ak-techwr.portaone.com" at="Feb 01 11:21:26" from="16045558915" cld="16045558901" serial="0"/> into current request Feb 01 11:21:45 [4]: Synchronized: <Account i="2130584" id="16045558915" model="credit" balance="0.00000" activation="2017 Jan 20 23:00:00"/> Feb 01 11:21:45 [4]: Synchronized: <Customer i="2509" name="John Doe" balance="-43.15945" limit="1000.00000"/> Feb 01 11:21:45 [4]: Successful update of the session deposit: <Session::Deposit i_account="2130584" i_customer="2509" session_id="D241210E 814932D0 742B5D37 7482DD36" amount="1043.15945" customer_lock="1" opened="2017 Feb 01 11:21:26" closing="2017 Feb 01 11:21:50"/> Feb 01 11:21:45 [4]: No connection to charge this access node answer leg. Feb 01 11:21:45 [3]: AAA::Accounting response, no attributes. Feb 01 11:21:45 [4]: This session closes in cache at Feb 01 11:22:15 (in 30s) Feb 01 11:21:45 [0]: ...Done Accounting::VOICE-answer-VoIP::Stop in 0.106162 seconds, 0.062022 spent in SQL queries. Dispatch+activation: 0.000139+0.001023 seconds. Feb 01 11:21:45 [0]: Processing request (BE ver:mr60,cluster:25393)... Feb 01 11:21:45 [3]: Attributes: NAS-IP-Address = '193.28.87.122' User-Name = '16045558915' Called-Station-Id = '16045558901' Calling-Station-Id = '16045558915' Acct-Status-Type = 'Stop' h323-call-origin = 'answer' h323-call-type = 'VoIP' h323-setup-time = '11:21:26.936 GMT Wed Feb 1 2017' alert-timepoint = '11:21:27.055 GMT Wed Feb 1 2017' h323-connect-time = '11:21:33.102 GMT Wed Feb 1 2017' h323-disconnect-time = '11:21:45.125 GMT Wed Feb 1 2017' h323-disconnect-cause = '0' h323-voice-quality = '0' h323-conf-id = 'D241210E 814932D0 742B5D37 7482DD36' call-id = 'POwd3XUemF' Acct-Session-Id = 'POwd3XUemF' Acct-Session-Time = '13' Acct-Delay-Time = '0' PortaOne-Transport-Protocol = 'SIP' h323-remote-address = '192.168.192.116' h323-ivr-out = 'PortaBilling_AccessCode:OUTGOING' h323-ivr-out = 'PortaBilling_Seed:2930590810' h323-ivr-out = 'PortaSIP_Aux_Info:CC=128470/1;cc_id=140470176278248;pid=19688' PortaOne-Called-Party = 'x=2509;bill-to=16045558901;net=0;site=2509' Acct-Terminate-Cause = 'User-Request' Event-Timestamp = '1485948105' NAS-Port = '5060'
Accounting for the second (outgoing) call leg is received.
Feb 01 11:21:45 [0]: <Session id="D241210E 814932D0 742B5D37 7482DD36" valid="1" i_service_type="3" i_env="8" created="Feb 01 11:21:26" modified="Feb 01 11:21:45" closing="Feb 01 11:22:15"/> Feb 01 11:21:45 [3]: Processing accounting: <Accounting::VOICE-originate-VoIP::Stop nas="ak-techwr.portaone.com" at="Feb 01 11:21:45" from="16045558915" cld="16045558901" serial="4"/> Feb 01 11:21:45 [4]: Copied account: <Account i="2130584" id="16045558915" model="credit" balance="0.00000" activation="2017 Jan 20 23:00:00"/> of <Customer i="2509" name="John Doe" balance="-43.15945" limit="1000.00000"/> from <Accounting::VOICE-answer-VoIP::Stop nas="ak-techwr.portaone.com" at="Feb 01 11:21:45" from="16045558915" cld="16045558901" serial="3"/> into current request Feb 01 11:21:45 [4]: Access billing from <Accounting::VOICE-answer-VoIP::Stop nas="ak-techwr.portaone.com" at="Feb 01 11:21:45" from="16045558915" cld="16045558901" serial="3"/> doesn't match on 'access-code' Feb 01 11:21:45 [4]: End of originate leg on access node Feb 01 11:21:45 [4]: Keep existent session deposit: <Session::Deposit i_account="2130584" i_customer="2509" session_id="D241210E 814932D0 742B5D37 7482DD36" amount="1043.15945" customer_lock="1" opened="2017 Feb 01 11:21:26" closing="2017 Feb 01 11:21:50"/> Feb 01 11:21:45 [3]: Found <Connection i="2015" name="SIP-to-SIP (on-net) calls" matchClass="VOICE/originate/VoIP:SIP"/> matched by routingGatewayId('SIP-UA'), remoteIp(empty), routingCld(empty) Feb 01 11:21:45 [4]: Found vendor: <Vendor i="1699" name="Internal Vendor"/> Feb 01 11:21:45 [5]: Looking for Porta::Rating::Rate::Standard matching <RateLookup pattern="VOICEONNET\RX|16045558901" seed="2930590810" effectiveFrom="2017 Feb 01 11:21:33" effectiveTo="2017 Feb 01 11:21:45" from="2017 Feb 01 11:21:33" to="2017 Feb 01 11:21:45" bill="2017 Feb 01 11:21:33"/> in <Tariff i="2461" name="SIP Phone Subscribers"/> Feb 11 07:32:01 [4]: Creating Porta::Rating::XDR::Account for 43 seconds of session-time based on chargeable 43 base units. Feb 11 07:32:01 [4]: No volume discount applicable for <Rate::Standard i="117068" destination="420" pattern="VOICEONNET\RX|420226491241" seed="0" level="0" has-discount="1"/> in <VolumeDiscount::Plan i="522" name="Prorated Thresholds VDP"/>
PortaBilling calculates how much the account should be charged for this call.
Feb 11 07:32:01 [3]: Charge <Tariff i="1574" name="SIP Internal Vendor"/> of Vendor. Building XDR ... Feb 01 11:21:45 [4]: Creating Porta::Rating::XDR::Account for used session-time 12 seconds Feb 01 11:21:45 [5]: Looking for Porta::Rating::Rate::Standard matching <RateLookup pattern="16045558901" seed="0" effectiveFrom="2017 Feb 01 11:21:33" effectiveTo="2017 Feb 01 11:21:45" from="2017 Feb 01 11:21:33" to="2017 Feb 01 11:21:45" bill="2017 Feb 01 11:21:33"/> in <Tariff i="2456" name="Internal SIPonNET"/> Feb 01 11:21:45 [4]: Creating Porta::Rating::XDR::Vendor for used session-time 12 seconds Feb 01 11:21:45 [3]: Account charge built: <XDR::Account pay="0.00020 USD" qty="12 second" history="+12x1@0.00100"> <Charge pay="0.00020 USD" qty="12 second" history="+12x1@0.00100"/> <XDR::Aux xdr_storage_type="Account" media_duration="12" xdr_time="2017 Feb 01 11:21:45"/> </XDR::Account> Feb 01 11:21:45 [3]: Vendor charge built: <XDR::Vendor pay="0.00000 USD" qty="12 second" history="+12x1@0.0"> <Charge pay="0.00000 USD" qty="12 second" history="+12x1@0.0"/> <XDR::Vendor::RevenueCharge pay="0.00020 USD" qty="0 unit" history="+12x1@0.00100"/> PortaBilling also calculates the termination costs for this call.
CDRs are inserted and balances are modified.
Feb 01 11:21:45
[3]: AAA::Accounting response, no attributes.
Feb 01 11:21:45 [4]: This session closes in cache at Feb 01 11:22:15
(in 30s)
Feb 01 11:21:45 [0]: ...Done Accounting::VOICE-originate-VoIP::Stop
in 0.228812 seconds, 0.183026 spent in SQL queries. Dispatch+activation:
0.002478+0.105232 seconds.
Verify call history for an account
To view the xDR of an account:
- On the account’s panel, click XDRs.
- On the Search xDRs panel, choose the date range for which you want to see the account’s xDRs and click Apply filters.
You can also go to the account self-care page (accessible via the Accounts menu item in the Home popup menu). The only difference is that account’s owner does not have the option of seeing incomplete (failed) calls when using the self-care pages.
Log in with the account’s web access login and password. After that you will be able to see the account’s dashboard interface. On the Billing Information tab, click Transactions.
Choose the date range for which you want to see a list of calls, and click Show Records. In the results table you will see call charges and other fees, such as maintenance fees or refunds (if any). The report can be also downloaded by clicking the Download icon.
Check call history
If you want to see a list of all calls going through the system, or perhaps only ones for a particular destination, use the Trace Session function.
- On the navigation menu, select Toolbox, then select Trace session.
- On the Search session panel, specify the search criteria:
- CLD – type the phone number you are looking for or a destination pattern (first digits and a percent sign, for example 44%).
- Date from, Date to – choose the date range.
- Click Apply filters.
The advantage of this method is that you can view all call attempts, including unsuccessful calls, with the disconnect reasons displayed.