Mehedi Hasan Tanim Posted October 17, 2021 Report Share Posted October 17, 2021 Hi, I am new to kazoo platform but has some prior experience to work with raw Freeswitch. I have tested some inbound call successfully by dialling an kazoo extension from zoiper client where callflow instructions are retrieved using pivot module and those are setup by me from Monster UI/Crossbar API. Now i want to make outbound PSTN call using Flowroute service provider. But unable to find clear instructions regarding this. From the Create an outbound carrier section of the link https://docs.2600hz.com/sysadmin/doc/install/configure_kazoo/, i think i need to setup Flowroute as resource and also need to configure corresponding callflow for routing the call using Flowroute. Is this the all configuration required for PSTN call using Flowroute or any more things i need to configure?Can anyone give me some insight on this? Thanks in advance. Note : 1 . I have installed kazoo on single Centos v7 server. 2 . I did not add any main number to my account. Quote Link to comment Share on other sites More sharing options...
fmateo05 Posted October 17, 2021 Report Share Posted October 17, 2021 That requires API interaction (postman) https://github.com/2600hz/kazoo/blob/master/applications/crossbar/doc/resources.md Also with this third-party resources APP: https://github.com/baloeng/monster-ui-resources Quote Link to comment Share on other sites More sharing options...
RuhNet Posted October 18, 2021 Report Share Posted October 18, 2021 Mehedi yes you are correct. Create a resource, either global or on the account. A global carrier requires creating a resource document in CouchDB but if you do it on the account you can use the API. Then you can create a callflow, but there is likely already one created by default for no match that goes to the account carrier (depends on your account settings IIRC.) Quote Link to comment Share on other sites More sharing options...
Mehedi Hasan Tanim Posted October 18, 2021 Author Report Share Posted October 18, 2021 @RuhNet and @fmateo05 Thanks for your prompt response. As per doc, i have created a resource for Flowroute on the account using resources API. My Request Details are as below URL : http://Kazoo-IP:8000/v2/accounts/account_id/resources Method : PUT Header : "X-Auth-Token: {AUTH_TOKEN}” Body : { "data": { "name": "flowroute", "rules": [ ".{7,}" ], "flags": [ "Use_Flowroute" ], "gateways": [{ "channel_selection": "ascending", "codecs": ["PCMU", "PCMA"], "custom_sip_headers": {}, "emergency": false, "enabled": true, "endpoint_type": "sip", "format_from_uri": false, "invite_format": "route", "password": "My_Password", "prefix": "", "progress_timeout": "15", "realm": "sip.flowroute.com", "server": "sip.flowroute.com", "skype_rr": true, "suffix": "", "username": "My_Username" }] } } If i fetch the resource details, then it shows { "data": { "name": "flowroute", "rules": [ ".{7,}" ], "flags": [ "Use_Flowroute" ], "gateways": [{ "channel_selection": "ascending", "codecs": [ "PCMU", "PCMA" ], "custom_sip_headers": {}, "emergency": false, "enabled": true, "endpoint_type": "sip", "format_from_uri": false, "invite_format": "route", "password": "My_Password", "prefix": "", "progress_timeout": 15, "realm": "sip.flowroute.com", "server": "sip.flowroute.com", "skype_rr": true, "suffix": "", "username": "My_Username", "force_port": false, "port": 5060 }], "emergency": false, "enabled": true, "from_account_realm": false, "grace_period": 5, "rules_test": [], "weight_cost": 50, "id": "f39a018667d617e8052fa0bc88ff77d2" }, "revision": "1-96d273e6e49cd071f0923ca18769de2a", "timestamp": "2021-10-18T13:17:18Z", "version": "4.3.140", "node": "yMeslQexQufV5c-zOCJ0Ow", "request_id": "b430f804325ca713f6d27df6d14bcf5a", "status": "success", "auth_token": "my - token" } I have created the callow from API. My Request Details are as below URL : http://Kazoo-IP:8000/v2/accounts/account_id/callflows Method : PUT Header : "X-Auth-Token: {AUTH_TOKEN}” Body : { "data": { "name": "Flowroute Callflow", "numbers": ["no_match"], "flow": { "module": "resources", "data": { "use_local_resources": true, "outbound_flags": [ "Use_Flowroute" ] } } } } If i fetch the callflow details, then it shows { "data": { "name": "Flowroute Callflow", "numbers": [ "no_match" ], "flow": { "module": "resources", "data": { "use_local_resources": true, "outbound_flags": [ "Use_Flowroute" ], "caller_id_type": "external", "ignore_early_media": false } }, "patterns": [], "id": "313f0a23386ce5096cc874e8ce3e1c96", "metadata": {} }, "revision": "1-438e4f675ee0489d9f08c9a7530834cd", "timestamp": "2021-10-18T13:41:28Z", "version": "4.3.140", "node": "yMeslQexQufV5c-zOCJ0Ow", "request_id": "dd8d4cc26de38f9935891d7312aed8ae", "status": "success", "auth_token": "my-token" } FS_Log.rtfKazoo_Log.rtf But the problem is if i dialled my mobile number from zoiper client, then it shows Error Service Unavailable (500) in zoiper. Can you guys help me to figure out what i am doing wrong here? I have attached kazoo and freeswitch log. Note : I did not add any Main Number to account. Is it any issue? Quote Link to comment Share on other sites More sharing options...
fmateo05 Posted October 18, 2021 Report Share Posted October 18, 2021 Set format_from_uri to true on the resource. Quote Link to comment Share on other sites More sharing options...
Mehedi Hasan Tanim Posted October 18, 2021 Author Report Share Posted October 18, 2021 @fmateo05 Again thanks for your suggestion. But unfortunately the same error still exists after setting "format_from_uri" to true on the resource. Quote Link to comment Share on other sites More sharing options...
fmateo05 Posted October 18, 2021 Report Share Posted October 18, 2021 You also can use formatters (https://github.com/2600hz/kazoo/blob/master/core/kazoo_endpoint/doc/formatters.md) there is a parameter section in the resource with the purpose of adding outbound caller id. Quote Link to comment Share on other sites More sharing options...
RuhNet Posted October 18, 2021 Report Share Posted October 18, 2021 The simple solution would be to add caller ID on the user. I suspect the reason Flowroute is refusing your call is because the caller ID you sent looks to be 30003 or similar. Quote Link to comment Share on other sites More sharing options...
Mehedi Hasan Tanim Posted October 19, 2021 Author Report Share Posted October 19, 2021 @fmateo05 I am using formatter now but still same error. I am not sure whether i am using formatter in right way or not. After adding formatter to resource, resource detail is as follows now { "data": { "name": "flowroute", "format_from_uri": true, "rules": [ ".{7,}" ], "flags": [ "Use_Flowroute" ], "formatters": { "outbound_caller_id_name": { "value": "kazoo" }, "outbound_caller_id_number": { "value": "12408446009" } }, "gateways": [{ "caller_id_type": "external", "channel_selection": "ascending", "codecs": [ "PCMU", "PCMA", "OPUS" ], "custom_sip_headers": {}, "emergency": false, "enabled": true, "endpoint_type": "sip", "format_from_uri": true, "invite_format": "route", "password": "my_password", "prefix": "", "progress_timeout": 10, "realm": "sip.flowroute.com", "server": "sip.flowroute.com", "skype_rr": false, "suffix": "", "username": "my_username", "force_port": false, "port": 5060 }], "emergency": false, "enabled": true, "from_account_realm": false, "grace_period": 5, "rules_test": [], "weight_cost": 50, "id": "f39a018667d617e8052fa0bc88ff77d2" }, "revision": "24-b34137ec7a15bdf702c24f967abdfc98", "timestamp": "2021-10-19T18:23:15Z", "version": "4.3.140", "node": "yMeslQexQufV5c-zOCJ0Ow", "request_id": "b80d5e6234fc055ba32bfb539e499c96", "status": "success", "auth_token": "my_token" } @RuhNet As per your suggestion , i have also added external caller ID on the user. User details is as below { "data": { "apps": {}, "call_forward": { "substitute": false, "enabled": false, "failover": false, "require_keypress": false, "keep_caller_id": false, "direct_calls_only": false, "ignore_early_media": true }, "call_restriction": { "closed_groups": { "action": "inherit" }, "tollfree_us": { "action": "inherit" }, "toll_us": { "action": "inherit" }, "emergency": { "action": "inherit" }, "caribbean": { "action": "inherit" }, "did_us": { "action": "inherit" }, "international": { "action": "inherit" }, "unknown": { "action": "inherit" } }, "caller_id": { "internal": { "number": "300003", "name": "Mehedi BMQA" }, "external": { "number": "12408446009", "name": "Kazoo" } }, "hotdesk": { "require_pin": false, "keep_logged_in_elsewhere": false, "enabled": false, "id": "" }, "contact_list": { "exclude": false }, "priv_level": "user", "music_on_hold": {}, "username": "mehedi.hasan@bengalmobileqa.com", "email": "mehedi.hasan@bengalmobileqa.com", "first_name": "Mehedi", "last_name": "BMQA", "presence_id": "300003", "flags": [], "vm_to_email_enabled": false, "verified": true, "ui_metadata": { "version": "4.3-140", "ui": "monster-ui", "origin": "callflows" }, "smartpbx": { "find_me_follow_me": { "enabled": true }, "call_recording": { "enabled": false } }, "send_email_on_creation": true, "ringtones": {}, "require_password_update": false, "enabled": true, "directories": { "undefined": "75b01106686d5b71d504864c500d6019", "b9d388d91d3f7ae631cda9a905cdcd0b": "75b01106686d5b71d504864c500d6019" }, "do_not_disturb": { "enabled": false }, "record_call": false, "id": "581f26b1c20d7ca49307eadc36d14204" }, "revision": "17-3ddc2b1310de65a55053684083a5512e", "timestamp": "2021-10-19T18:28:19Z", "version": "4.3.140", "node": "yMeslQexQufV5c-zOCJ0Ow", "request_id": "260ae8c21d5363132766e71607cedf6f", "status": "success", "auth_token": "" } These caller id change effect can be seen at log but error is same. 2021-10-19T13:29:35.640417174Z [NOTICE] kazoo_node.c:466 log|g5JjzWMA7WqSxhXjHbyahg..|building xferext extension: bridge {origination_caller_id_number='12408446009',origination_caller_id_name='Kazoo',ignore_early_media='false',ecallmgr_Account-ID='36c8b00775c52885118d87b1cc7e78ca',ignore_display_updates='true',ecallmgr_Outbound-Flags='Use_Flowroute',ecallmgr_Realm='li89-28.members.linode.com',ecallmgr_Reseller-ID='36c8b00775c52885118d87b1cc7e78ca',effective_caller_id_number='12408446009',effective_caller_id_name='Kazoo',local_var_clobber='true'}[^^!origination_caller_id_name='kazoo'!leg_progress_timeout='10'!sip_from_uri='sip:12408446009@sip.flowroute.com'!ecallmgr_Global-Resource='false'!ecallmgr_Resource-ID='f39a018667d617e8052fa0bc88ff77d2'!ecallmgr_E164-Destination='+8801717580324'!ecallmgr_Original-Number='8801717580324'!ecallmgr_Matched-Number='+8801717580324'!ecallmgr_Resource-Type='offnet-termination'!absolute_codec_string='^^:PCMU:PCMA:OPUS'!effective_callee_id_number='+8801717580324'!effective_callee_id_name='8801717580324'!sip_auth_username='my_username'!sip_auth_password='my_password']sofia/sipinterface_1/+8801717580324@sip.flowroute.com 2021-10-19T13:29:35.640421103Z [NOTICE] kazoo_node.c:466 log|g5JjzWMA7WqSxhXjHbyahg..|building xferext extension: event Event-Name=CUSTOM,Event-Subclass=kazoo::masquerade,kazoo_event_name=CHANNEL_EXECUTE_COMPLETE,kazoo_application_name=bridge Quote Link to comment Share on other sites More sharing options...
fmateo05 Posted October 19, 2021 Report Share Posted October 19, 2021 You forgot the match regex in the formatters section. You can also use sngrep to see if the callerid is well formatted. "formatters":{ "from":[ {"regex":"\\+?1?(\\d{10})$" ,"direction":"outbound" } ] ,"outbound_caller_id_number":[{ "value":"<NUMBER HERE>" }],"outbound_caller_id_name":[{ "value":"<NAME HERE>" }] }, Quote Link to comment Share on other sites More sharing options...
Mehedi Hasan Tanim Posted October 20, 2021 Author Report Share Posted October 20, 2021 @fmateo05 thanks for your patience and cooperation . As per your suggestion i have added regex in the formatter section.But still no luck. I have attached a pcap file and sngrep screenshot. From pcap file, i am little bit confused whether the request is reached to flowroute or not. After updating formatter, my current resource detail is as follow { "data": { "name": "flowroute", "format_from_uri": true, "rules": [ ".{7,}" ],sip_message.pcap "flags": [ "Use_Flowroute" ], "formatters": { "from": [{ "regex": "\\+?1?(\\d{10})$", "direction": "outbound" }], "outbound_caller_id_number": [{ "value": "12408446009" }], "outbound_caller_id_name": [{ "value": "kazoo" }] }, "gateways": [{ "caller_id_type": "external", "channel_selection": "ascending", "codecs": [ "PCMU", "PCMA", "OPUS" ], "custom_sip_headers": {}, "emergency": false, "enabled": true, "endpoint_type": "sip", "format_from_uri": true, "invite_format": "route", "password": "my_password", "prefix": "", "progress_timeout": 10, "realm": "sip.flowroute.com", "server": "sip.flowroute.com", "skype_rr": false, "suffix": "", "username": "my_username", "force_port": false, "port": 5060 }], "emergency": false, "enabled": true, "from_account_realm": false, "grace_period": 5, "rules_test": [], "weight_cost": 50, "id": "f39a018667d617e8052fa0bc88ff77d2" }, "revision": "26-2b129d38d2cec1e713a064c93a7240b9", "timestamp": "2021-10-20T08:21:32Z", "version": "4.3.140", "node": "yMeslQexQufV5c-zOCJ0Ow", "request_id": "0fd4c481a17edc12bd4b57c30b22979d", "status": "success", "auth_token": "my_token" } Quote Link to comment Share on other sites More sharing options...
fmateo05 Posted October 20, 2021 Report Share Posted October 20, 2021 (edited) I was reading this guide https://support.flowroute.com/093183-Configure-an-Asterisk-PBX It specifies a tech prefix. I suggest you to add your assigned tech prefix to the carrier config like "prefix": "<PREFIX-NUMBER>", Edited October 20, 2021 by fmateo05 (see edit history) Quote Link to comment Share on other sites More sharing options...
Mehedi Hasan Tanim Posted October 20, 2021 Author Report Share Posted October 20, 2021 @fmateo05 Flowroute tech prefix is 8 digit and it is same as sip username. Did you mean to add this under gateway section of resource configuration as like (marked in red color) ? { "gateways": [{ "caller_id_type": "external", "channel_selection": "ascending", "codecs": [ "PCMU", "PCMA", "OPUS" ], "custom_sip_headers": {}, "emergency": false, "enabled": true, "endpoint_type": "sip", "format_from_uri": true, "invite_format": "route", "password": "my_password", "prefix": "09....11", "progress_timeout": 10, "realm": "sip.flowroute.com", "server": "sip.flowroute.com", "skype_rr": false, "suffix": "", "username": "my_password", "force_port": false, "port": 5060 }] } Quote Link to comment Share on other sites More sharing options...
RuhNet Posted October 20, 2021 Report Share Posted October 20, 2021 (edited) @Mehedi Hasan Tanim Correct. The prefix will be added to the beginning of the SIP URI when dialing out. Edited October 20, 2021 by RuhNet (see edit history) Quote Link to comment Share on other sites More sharing options...
Mehedi Hasan Tanim Posted October 22, 2021 Author Report Share Posted October 22, 2021 Thanks @fmateo05and @RuhNet for your suggestions . Finally i am able to make it working after communicating with flowroute. Problem was not at kazoo end. Problem was that i was trying to use their old proxy server which they decommissioned last year. Quote Link to comment Share on other sites More sharing options...
RuhNet Posted October 22, 2021 Report Share Posted October 22, 2021 Hahaha ok anyway glad you got it sorted. :-) Dealing with things like that can be frustrating. At least now you know several ways to solve potential carrier interface issues with Kazoo. 😁 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.