Páginas relacionadas.
Friday, December 18, 2020
Video corto de demostracion TestYourCall
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
Key | Description | Type | Default | Required | Support Level |
---|---|---|---|---|---|
bypass_e164 | Use the original requested number instead of normalizing to E164 | boolean() | false | ||
caller_id_type | Which configured caller-id to use (key in the 'caller_id' object) | string() | external | false | |
custom_sip_headers.in | Custom SIP Headers to be applied to calls inbound to Kazoo from the endpoint | #/definitions/custom_sip_headers | false | ||
custom_sip_headers.out | Custom SIP Headers to be applied to calls outbound from Kazoo to the endpoint | #/definitions/custom_sip_headers | false | ||
custom_sip_headers.^[a-zA-z0-9_\-]+$ | The SIP header to add | string() | false | ||
custom_sip_headers | A property list of SIP headers | object() | false | ||
do_not_normalize | Use the original requested number instead of normalizing; otherwise try to apply the endpoint's dialplan to the requested number | boolean() | false | ||
dynamic_flags.[] | string() | false | |||
dynamic_flags | List of function names (or 'zone') that are called on the Call record to populate the 'flags' array sent to the resource(s) for matching | array(string()) | false | ||
emit_account_id | Toggles whether to put the account id in the SIP packets | boolean() | false | ||
format_from_uri | If true, puts the account realm in the From header | boolean() | false | ||
from_uri_realm | Override the From realm in the SIP packets | string() | false | ||
hunt_account_id | When using local resources, use this account instead of the account making the call (useful for resellers) | string() | false | ||
ignore_early_media | Toggle whether to ignore early media | boolean() | false | false | |
outbound_flags.[] | string() | false | |||
outbound_flags | List of flags to use when matching resources to route the call | array(string()) | [] | false | |
resource_type | sets a custom resource type for the published amqp message | string() | false | ||
ringback | Tone or file to play while waiting for the leg to be answered | string() | false | ||
skip_module | When set to true this callflow action is skipped, advancing to the wildcard branch (if any) | boolean() | false | ||
timeout | How long, in seconds, to wait for the call to be answered | integer() | false | ||
to_did | Statically set the DID to dial | string() | false | ||
use_local_resources | Toggle whether to use the account's (or hunt_account_id's) resources vs the system resources | boolean() | true | false |
Wednesday, June 24, 2020
Tuesday, June 9, 2020
Sonidos de kazoo en idioma español
Friday, June 5, 2020
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
toautoload_configs/modules.conf.xml
Examples
morse
TTS interface
Play tones over TTS
<action application="speak" data="morse||Be sure to drink your Ovaltine"/>
morse
dialplan 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)
- by mooseable
- 12 May 2020
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.