Friday, December 18, 2020

Video corto de demostracion TestYourCall

Demostracion Test-your-call, servicio para pruebas de audio en las llamadas




 

Wednesday, October 14, 2020

Bandwidth en completar adquisicion de VoxBone

 

  • Leading North American and international cloud platforms come together to supercharge enterprise communications across 60+ countries representing 93% of global GDP
  • Global enterprises will benefit from a unified software platform and network for the rapid launch and hyper-scale of communications applications and experiences
  • Combination will accelerate and expand Bandwidth’s opportunity to serve $17.7 billion CPaaS market with a five-year CAGR of 33% (2019 to 2024)1
  • Voxbone’s 2020 revenue is expected to be more than $85 million and up more than 25% year-over-year, and upon close will be accretive to Bandwidth’s non-GAAP gross margin and non-GAAP net income

RALEIGH, NC and LONDON, UK — Oct 12, 2020 — Bandwidth (NASDAQ: BAND), a leading enterprise cloud communications company announced it has signed a definitive agreement to acquire Voxbone, an international enterprise cloud communications leader, for an enterprise value of €446 million EUR, representing a multiple of approximately six times anticipated Voxbone 2020 revenue. Voxbone has been majority-owned by Vitruvian Partners, a leading growth- and technology-focused investment firm headquartered in London, UK, since 2015. Voxbone is a leading European-based communications platform and IP voice network. Since 2005, their mission has been to simplify global communications for businesses by providing compliant, quality coverage that can be integrated with any contact center, conferencing platform or voice application.

Wednesday, September 16, 2020

Friday, August 21, 2020

Imagenes nuevas (y corregidas) de Kazoo Embebido

 Tenemos disponibles nuevas imagenes para instalar kazoo VoIP en servidores genericos y appliances de AMD 64 bits. 

Las mismas incluyen tecnologias SquashFS y Overlays, con el proposito de proveer un sistema  mucho mas compacto y de mas espacio a utilizar.

En menos de 5 minutos, usted obtiene una instalacion de Kazoo/2600hz (version 4.3 ) disponible, con solo algunos pasos de configuracion.


Enlace al Proyecto: 

https://sourceforge.net/projects/kazoo-pbx-embedded/


International Phone Numbers / Numeros Telefonicos Internacionales




By default, Kazoo includes appropriate configurations for running the system in the United States. Nothing, however, stops folks from re-configuring the system to support other country's numbering system.

2600Hz encourages you to consider sticking with the E.164 format for globally rout-able numbers.

Determine if a number is "global"#

The first thing to configure is how to tell when a number is "globally rout able" versus an internal extension. This is managed in the system_config/number_manager configuration document, under the reconcile_regex key.

"reconcile_regex": "^\\+?1?\\d{10}$|^\\+[2-9]\\d{7,}$|^011\\d{5,}$|^00\\d{5,}$"

Here is the default, which if reading regexps isn't second nature, optionally matches a + and a 1 (the country code for the US), followed by any 10 digits, or matches 8-or-more digit numbers (prefixed by a +), or the international dialing codes for the US.


Resources / Llamadas salientes en Kazoo

Route the caller to external resources (typically upstream providers).

Schema#

Validator for the resources callflow data object

KeyDescriptionTypeDefaultRequiredSupport Level
bypass_e164Use the original requested number instead of normalizing to E164boolean()false
caller_id_typeWhich configured caller-id to use (key in the 'caller_id' object)string()externalfalse
custom_sip_headers.inCustom SIP Headers to be applied to calls inbound to Kazoo from the endpoint#/definitions/custom_sip_headersfalse
custom_sip_headers.outCustom SIP Headers to be applied to calls outbound from Kazoo to the endpoint#/definitions/custom_sip_headersfalse
custom_sip_headers.^[a-zA-z0-9_\-]+$The SIP header to addstring()false
custom_sip_headersA property list of SIP headersobject()false
do_not_normalizeUse the original requested number instead of normalizing; otherwise try to apply the endpoint's dialplan to the requested numberboolean()false
dynamic_flags.[]string()false
dynamic_flagsList of function names (or 'zone') that are called on the Call record to populate the 'flags' array sent to the resource(s) for matchingarray(string())false
emit_account_idToggles whether to put the account id in the SIP packetsboolean()false
format_from_uriIf true, puts the account realm in the From headerboolean()false
from_uri_realmOverride the From realm in the SIP packetsstring()false
hunt_account_idWhen using local resources, use this account instead of the account making the call (useful for resellers)string()false
ignore_early_mediaToggle whether to ignore early mediaboolean()falsefalse
outbound_flags.[]string()false
outbound_flagsList of flags to use when matching resources to route the callarray(string())[]false
resource_typesets a custom resource type for the published amqp messagestring()false
ringbackTone or file to play while waiting for the leg to be answeredstring()false
skip_moduleWhen set to true this callflow action is skipped, advancing to the wildcard branch (if any)boolean()false
timeoutHow long, in seconds, to wait for the call to be answeredinteger()false
to_didStatically set the DID to dialstring()false
use_local_resourcesToggle whether to use the account's (or hunt_account_id's) resources vs the system resourcesboolean()truefalse

Tuesday, June 9, 2020

Sonidos de kazoo en idioma español

Tenemos a disposicion los sonidos de kazoo en idioma español. Los mismos pueden ser importados en el sistema con los comandos requeridos.

Para que el mismo tenga efecto en la cuenta de kazoo, se requiere crear un pre-flow (con el call-flow correspondiente) que incluya la accion de idiomas con la entrada 'es-es'

Thursday, June 4, 2020

FreeSWITCH mod_morse

mod_morse

Do you run a fleet of submarines somewhere in the Atlantic Ocean? In this day and age of WebRTC and the ability to reach across the globe, people tend to forget how far we've come in communications.

Not here at SignalWire! As we spend each and every day building the future of telecom we like to look back and see how they did it in the good old days.

With that in mind, and in order to facilitate communications with submariners across the globe, SignalWire is proud to announce the release of a new TTS voice - Morse Code

Starting right now you can write FreeSWITCH applications that can speak using Morse code. Send messages to your captains in the Laurentian abyss! Like the telegraph operators of yore, you too can feel the thrill of sending messages all over the globe at the blazing speed of 35 words per minute!

Build and install

  • Install FreeSWITCH, libraries, and include files first.
$ ./bootstrap.sh
$ ./configure
$ make
$ sudo make install
  • Add mod_morse to autoload_configs/modules.conf.xml

Examples

morse TTS interface

Play tones over TTS

<action application="speak" data="morse||Be sure to drink your Ovaltine"/>

morsedialplan APP

Play tones with APP

<action application="morse" data="Be sure to drink your Ovaltine"/>

morse API function

Generate teletone string

freeswitch> morse %Be sure to drink your Ovaltine

Generate dits and dahs

freeswitch> morse Be sure to drink your Ovaltine

Friday, May 29, 2020

KCT-02: Kazoo Zone Architecture (en)


As in my previous post, Kazoo brings a lot of existing projects together.

Session Border Controller (SBC)

2600hz Kazoo utilizes Kamailio as its session border controller. Public devices and carriers hit the SBC first. The SIP SDP is then processed by Kamailios rules and if not blocked, is told where to dispatch the call to and routes to the Media servers. It also subscribes/listens to the message bus (RabbitMQ) for things like presence tracking.
With the right features enabled, it will mitigate sipvicious attacks, allow SIP SIMPLE messaging, prevent SIP flooding and more.

Media Server

Freeswitch is the media server of choice here. It does the media codec negotiation, audio leg setup and It publishes/listens to events via RabbitMQ. Most of the call control is done via the ecallmgr Kazoo App.

Message Bus

The glue that binds.
RabbitMQ is the backbone and is what allows these separate components to talk to each other. Each service connects to the RabbitMQ message bus and sends or receives messages from other services. As an example, when Freeswitch loads it subscribes to RabbitMQ and requests ACLs, then the ecallmgr application is listening for that message and in response, sends the list of ACLS back to RabbitMQ. Finally, since Freeswitch is subscribed/listening to that message, it receives the list of ACLs that it needs to configure itself with.

Kazoo Applications

Written in erlang, each app communicates with the rest of the cluster, even other apps, via the Message Bus (RabbitMQ). You can extend Kazoo with other languages, since it all makes use of the RabbitMQ message bus to communicate, but everything I’ve seen so far is in Erlang.

The applications control the logic behind the system, such as how a call is routed, voicemail boxes, fax boxes, how calls are billed and rated, if an account has limits, webhooks, the API and everything else

Database

Originally using BigCouch and officially moving to CouchDB. CouchDB is a json-based, easily clustered and replicated database.

I use CouchDB over the pre-packaged BigCouch for better clustering, but it is a simple JSON document store database. It has a interesting approach to clustering and is very developer friendly, but the user interface leaves a little to be desired. I would highly recommend getting use to the REST-like commands required to manage your CouchDB cluster. The latest version of CouchDB supports resharding, allowing you to more easily scale your cluster as load increases.

HAProxy – TCP Proxy

If you are familiar with NGINX or other load balancers, HAProxy will not present much of a challenge. It is relatively easy to configure and easier to reload with updated configuration. Not pictured above, it is typically used to balance/failover the Kazoo API, SMTP and CouchDB.

Kazoo MonsterUI – The interface that saved Kazoo

In the beginning, there was an API. 2600hz rightly so started with the idea that implementors of Kazoo would design their own UI, but many more wanted to just stand up VoIP infrastructure an manage it without having to deal with the API all the time. At first, KazooUI was developed and later, the much nicer looking and easier to manage MonsterUI came along. This is one of the main reasons I gave Kazoo a shot.



Fuente: https://mooseable.com/kct-02-kazoo-zone-architecture-and-kazoo-applications/

Saturday, May 23, 2020

Carrier Types

#

Every number in the system has an internal property called pvt_carrier_module that defines which carrier module is used to manage the number. The carrier module can modify how the number behaves in the system.

Manual Number Management#

knm_local#

This module is responsible for "local" numbers, that is number that only belongs to one account (local to that account) and not to the system. These numbers are expected to be added by the admin of the account (local admin) for use with that account only. Furthermore, it is expected the number is owned by the local admin and not the system operators. For example, if an account was using its own carriers (local resources) then all numbers would be owned by the local admin and not participate in any of the automatic facilities provided by Kazoo.

These special numbers do not behave like any other numbers in the system:

  • When released they are completely deleted from the system, bypassing the typical lifecycle
  • By default they are not quantified by billing modules
  • By default they do not trigger call authorization
  • By default they can not be used to route inter-account calls without leaving the cluster
  • By default they can not use any number features that would incur charges/cost (such as E911 and CNAM)

knm_inventory#

This module is responsible for number inventories that are manually managed by the system administrator. All numbers managed by this module will move through the typical number lifecycle.

These numbers are expected to be added via CSV jobs/tasks as available numbers, search and found by local admins and returned through aging to the available pool if released.

knm_managed#

This module is responsible for numbers that are generated for specific accounts by the system administrator. All numbers managed by this module will move through the typical number lifecycle.

These numbers are expected to be added via SUP as available numbers that can only be searched and acquired by the pre-determined account.

Primarily, this is used for testing or development.

Example#

Generate 5 numbers, starting at 2223334000, for {ACCOUNT_ID}:

sup kazoo_number_manager_maintenance generate_numbers managed {ACCOUNT_ID} 2223334000 5

knm_mdn#

This module is responsible for numbers added for mobile services. All numbers managed by this module can only be in_service. They behave like knm_local numbers.

These numbers are internally generated and do not have a direct means of creation via the phone_numbers API.

Integrations#

knm_telnyx#

This module integrates with https://telnyx.com/ to provide number searching and provisioning services.

knm_vitelity#

This module integrates with http://www.vitelity.com/ to provide number searching and provisioning services.

knm_voip_innovations#

This module integrates with https://voipinnovations.com/ to provide number searching and provisioning services.

knm_bandwidth#

This module is deprecated please use knm_bandwidth2.

knm_bandwidth2#

This module integrates with https://www.bandwidth.com/ to provide number searching and provisioning services.

knm_inum#

This module integrates with http://www.inum.net to provide number searching and provisioning services.

knm_other#

This module is current a work-in-progress to provide a generic interface for midware applications.