Flowroute Outbound SMS Works but Not Inbound

Status
Not open for further replies.

williamsinfosec

SOHO User
Joined
Apr 7, 2024
Messages
4
Reaction score
0
I have 3CX Windows v18 running behind Sophos XGS firewall with Flowroute DIDs enabled with messaging, I setup API Keys and URLs and outgoing SMS from my Flowroute DIDs works perfectly however when I send SMS to DIDs (inbound or incoming) it doesn work. I contacted Flowroute support and they said they get 404 error msg is below:

Hi Customer


We have found the message example and are sending it to the callback URL (below) that matches the callback URL on your account and are getting a 404 error back.

https://xxxxxxxxxxxxxx.3cx.xxxxxx:5001/sms/flowroute/xxxxxxx-5432-xxxxxx-xxxxxx-xxxxxxxxxxxx

I masked URL details but when I browse URL I just see a 1 in the webpage, I am able to browse webclient and admin page on 5001 for my 3CX no problem and everything else works including calls outbound and inbound

Is SMS page missing or is there additional config I need to do so Flowroute can connect to URL properly because it seems they are saying page for sms is missing ?? (404 error)
 
You could inspect the Log of the Phonesystem (Management console log, and it should be in verbose) and see the error in there.
Since you mentioned on the firewall, you should not have any limitation on HTTPS port from the IPs of the provider
 
  • Like
Reactions: GregG_3CX
Verbose log doesn’t show any incoming sms I have opened port 5001 and https to 3CX server
 
So you mean, the request is not even reaching the 3CX server?
 
Correct there is no reference to inbound sms in 3CX logs or message queue only outbound
 
So, on the incoming SMS, when my Phonesystem is verbose, I see this event, so you can check the keywords and maybe search from your side:

Code:
2024/04/10 07:04:57.617|17220|0077|Trac|[Microsoft.AspNetCore.Hosting.Diagnostics] Request starting HTTP/1.1 POST http://myFQDN.3cx.com.cy:443/sms/voxtelesys/XXXXXd82b4e82432127d12 application/json 147
2024/04/10 07:04:57.617|17220|0077|Verb|#42177 (traceid=0HN2I96LCG2CK:0000013C) START: POST https://myFQDN.3cx.com.cy:443/sms/voxtelesys/XXXXXXXXX7bd82b4eXXXXXXXd12
2024/04/10 07:04:57.618|17220|0077|Trac|[Microsoft.AspNetCore.Routing.EndpointMiddleware] Executing endpoint 'ManagementConsoleJS.Controllers.SmsController.PostMethod (3CXManagementConsole)'
2024/04/10 07:04:57.947|17220|0077|Trac|[Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker] Route matched with {action = "PostMethod", controller = "Sms"}. Executing controller action with signature System.Threading.Tasks.Task PostMethod(System.String, System.String, Newtonsoft.Json.Linq.JContainer, GatewayServiceImpl.ISmsProviderFactory, TCX.Configuration.IPhoneSystem) on controller ManagementConsoleJS.Controllers.SmsController (3CXManagementConsole).
2024/04/10 07:04:59.087|17220|0077|Verb|voxtelesys: Requesting conversation for +17XXXXXX62@+17XXXXXX75.voxtelesys:SEARCHONLY
2024/04/10 07:04:59.109|17220|0077|Verb|[GS] Request(MyPhone.Notifications.RequestCreateConversation)
2024/04/10 07:04:59.173|17220|0077|Verb|[GS] ClientChannelImpl.SendRequest(MyPhone.Notifications.RequestCreateConversation) started
2024/04/10 07:04:59.243|17220|0084|Trac|[Microsoft.AspNetCore.Hosting.Diagnostics] Request starting HTTP/1.1 POST http://127.0.0.1:5004/MyPhone/MPWebService.asmx text/xml;+charset=utf-8 289
2024/04/10 07:04:59.243|17220|0084|Verb|#42178 (traceid=0HN2I96LCG2CS:00000002) START: POST http://127.0.0.1:5004/MyPhone/MPWebService.asmx
2024/04/10 07:04:59.244|17220|0084|Trac|[Microsoft.AspNetCore.Routing.EndpointMiddleware] Executing endpoint 'ManagementConsoleJS.MyPhone.MyPhoneController.MPWebService (3CXManagementConsole)'
2024/04/10 07:04:59.244|17220|0084|Trac|[Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker] Route matched with {action = "MPWebService", controller = "MyPhone"}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] MPWebService(System.Threading.CancellationToken) on controller ManagementConsoleJS.MyPhone.MyPhoneController (3CXManagementConsole).
2024/04/10 07:04:59.245|17220|0084|Verb|MYPHONE: HandleRequest from GatewayService@c15b21ba-b799-XXXX-85b8-c81128ded80c(traceid=0HN2I96LCG2CS:00000002)
2024/04/10 07:04:59.329|17220|0084|Verb|MYPHONE: Incoming request: messageID=189. (traceid=0HN2I96LCG2CS:00000002). Current requests: 1.
2024/04/10 07:04:59.495|17220|0084|Verb|MYPHONE: GetOrCreateConversation(party=+170XXXXX62@+17XXXXXX75.voxtelesys:SEARCHONLY, GatewayService)
2024/04/10 07:04:59.496|17220|0084|Verb|MYPHONE: ConversationIdFromParty(GatewayService, +170XXXXXX62@+170XXXX75.voxtelesys:SEARCHONLY, ,..)
2024/04/10 07:04:59.751|17220|0024|Verb|MYPHONE: ConversationIdFromGidAsync gid=4609778438804650b413a3452e86479a
2024/04/10 07:04:59.754|17220|0024|Verb|MYPHONE: ConversationIdFromGidAsync returns id=0, party=null
2024/04/10 07:04:59.828|17220|0084|Verb|MYPHONE: ConversationIdForProvider returns id=0, gid=null
2024/04/10 07:04:59.944|17220|0084|Verb|MYPHONE: Executing query: select chat_conversation_member.id as id_member, party, is_external, queue_no, public_name, is_finished, close_reason, cnv_gid, member_gid,
participant_no, participant_pbx, participant_name, participant_email, participant_phone, participant_ip, type, moderator, user_data, is_archived, conversation_name, taken_by_member_id, is_removed, is_whisperer
from chat_conversation_member
inner join chat_conversation on (chat_conversation.id=fkid_conversation)
left outer join chat_results on (chat_results.fkid_conversation=chat_conversation_member.fkid_conversation)
where chat_conversation_member.fkid_conversation = :idcnv order by id_member;
2024/04/10 07:04:59.965|17220|0084|Verb|MYPHONE: _DAC([189 RequestCreateConversation]) - 00:00:00.7205782 - from GatewayService[c15b21ba-b799-XXXX-85b8-c81128ded80c]@127.0.0.1. Requests:1 -> 0 (traceid=0HN2I96LCG2CS:00000002)
2024/04/10 07:04:59.966|17220|0084|Trac|[Microsoft.AspNetCore.Mvc.Infrastructure.ContentResultExecutor] Executing ContentResult with HTTP Response ContentType of text/xml
2024/04/10 07:04:59.966|17220|0084|Trac|[Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker] Executed action ManagementConsoleJS.MyPhone.MyPhoneController.MPWebService (3CXManagementConsole) in 722.2796ms
2024/04/10 07:04:59.966|17220|0084|Trac|[Microsoft.AspNetCore.Routing.EndpointMiddleware] Executed endpoint 'ManagementConsoleJS.MyPhone.MyPhoneController.MPWebService (3CXManagementConsole)'
2024/04/10 07:04:59.966|17220|0084|Verb|#42178 (traceid=0HN2I96LCG2CS:00000002) STOP: POST http://127.0.0.1:5004/MyPhone/MPWebService.asmx processed 00:00:00.7229058
2024/04/10 07:04:59.966|17220|0084|Trac|[Microsoft.AspNetCore.Hosting.Diagnostics] Request finished HTTP/1.1 POST http://127.0.0.1:5004/MyPhone/MPWebService.asmx text/xml;+charset=utf-8 289 - 200 463 text/xml 723.1227ms
2024/04/10 07:05:00.044|17220|0025|Verb|MYPHONE: Updated.SBCRUNTIMEDATA.7 is ready
2024/04/10 07:05:00.044|17220|0025|Verb|MYPHONE: Skipped SBCRUNTIMEDATA.7
2024/04/10 07:05:00.059|17220|0077|Verb|[GS] ClientChannelImpl.SendRequest(MyPhone.Notifications.RequestCreateConversation) finished
2024/04/10 07:05:00.100|17220|0025|Verb|MYPHONE: Updated.SBCRUNTIMEDATA.7 is ready
2024/04/10 07:05:00.101|17220|0025|Verb|MYPHONE: Skipped SBCRUNTIMEDATA.7
2024/04/10 07:05:00.138|17220|0077|Verb|[GS] Response = ACK: Success=False, ErrorType=NoPermission, ErrorCode=null, Parameter=, Message=Cannot create new conversation with sms participant when previous one is not closed
2024/04/10 07:05:00.329|17220|0077|Verb|10006(Voxtelesys): GetCurrentDestination() selected 829 as current destination
2024/04/10 07:05:00.329|17220|0077|Verb|voxtelesys: Requesting conversation for +170XXXXXXX62@+170XXXXX75.voxtelesys:829
2024/04/10 07:05:00.330|17220|0077|Verb|[GS] Request(MyPhone.Notifications.RequestCreateConversation)
2024/04/10 07:05:00.330|17220|0077|Verb|[GS] ClientChannelImpl.SendRequest(MyPhone.Notifications.RequestCreateConversation) started
2024/04/10 07:05:00.330|17220|0084|Trac|[Microsoft.AspNetCore.Hosting.Diagnostics] Request starting HTTP/1.1 POST http://127.0.0.1:5004/MyPhone/MPWebService.asmx text/xml;+charset=utf-8 277
2024/04/10 07:05:00.330|17220|0084|Verb|#42179 (traceid=0HN2I96LCG2CS:00000003) START: POST http://127.0.0.1:5004/MyPhone/MPWebService.asmx
2024/04/10 07:05:00.330|17220|0084|Trac|[Microsoft.AspNetCore.Routing.EndpointMiddleware] Executing endpoint 'ManagementConsoleJS.MyPhone.MyPhoneController.MPWebService (3CXManagementConsole)'
2024/04/10 07:05:00.330|17220|0084|Trac|[Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker] Route matched with {action = "MPWebService", controller = "MyPhone"}. Executing controller action with signature System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] MPWebService(System.Threading.CancellationToken) on controller ManagementConsoleJS.MyPhone.MyPhoneController (3CXManagementConsole).
2024/04/10 07:05:00.331|17220|0084|Verb|MYPHONE: HandleRequest from GatewayService@c15b21ba-XXXXX-bc97-85b8-c81128ded80c(traceid=0HN2I96LCG2CS:00000003)
2024/04/10 07:05:00.332|17220|0084|Verb|MYPHONE: Incoming request: messageID=189. (traceid=0HN2I96LCG2CS:00000003). Current requests: 1.
2024/04/10 07:05:00.332|17220|0084|Verb|MYPHONE: GetOrCreateConversation(party=+17XXXXXX62@+170XXXXXX75.voxtelesys:829, GatewayService)
2024/04/10 07:05:00.332|17220|0084|Verb|MYPHONE: ConversationIdFromParty(GatewayService, +170XXXXX62@+17XXXXX75.voxtelesys:829, ,..)
2024/04/10 07:05:00.332|17220|0024|Verb|MYPHONE: ConversationIdFromGidAsync gid=1243b775aafa4806bd578e46a95a357c
2024/04/10 07:05:00.335|17220|0047|Verb|MYPHONE: ConversationIdFromGidAsync returns id=0, party=null
2024/04/10 07:05:00.337|17220|0084|Verb|MYPHONE: ConversationIdForProvider returns id=0, gid=null
2024/04/10 07:05:00.378|17220|0077|Verb|MYPHONE: ConversationIdFromPartyAsync returns id=0, gid=null
2024/04/10 07:05:00.464|17220|0024|Verb|MYPHONE: ConversationIdFromPartyTask(user=GatewayService, party=+170XXXXXXX62@+170XXXXXX75.voxtelesys:829) started
2024/04/10 07:05:00.481|17220|0024|Verb|MYPHONE: Executing scalar query: insert into chat_conversation (party, is_external, queue_no, public_name, cnv_gid) values (:party, :external, :queue, :publicname, :cnv_gid) returning id;
 
Flowroute is now blocking all outbound SMS messages if you have not submitted the 10DLC.

We need guidance on how to answer some of these question as 3CX is not really an A2P system. Nothing about the text messages are automated. There are no standard templates. No way to opt-in or opt-out. How do we respond to these questions on the form?

Has anyone had any luck in getting this accepted? And if so how do you answer these questions?
 
  • Like
Reactions: MayurPatel
@wade8421
You should contact Flowroute on this matter so that they can advise and provide you with more information on how to fill up the mentioned form, with the examples etc.
Have a nice day
 
Hi Oleg,

I have reached out to Flowroute, but they don't want to offer guidance as to how to answer these questions. I have basically filled out the form saying "this is not a campaign, there are no Opt-in or Opt-out options. we only respond to client initiated SMS messages."

Hopefully this will work.

I was posting this to see if anyone else had the same issue and to maybe find out our they responded to the questions.

Thank you for the response though!!

Thanks
Wade
 
  • Like
Reactions: Christian SCG
@wade8421 you're not alone, from our experience there is no flexibility.

This has been handled very badly by Flowroute, we previously contacted them some time ago based on a post from the 3CX blog about 10DLC requirements and since all our systems are low volume, they said that we were exempt, even systems that we have for families for their homes to avoid using their cell phones.

Then the emails came a week or so before shutdown of outbound on 4/17, we went through the process to setup a campaign right away, no response until 4/17/2024 the day of their blockage, not much time to fix if something was askew and there were things we needed to address like statements and verbiage which all could have been avoided by better clarity to their vetting process.

For the family systems that are not business they want them to register for an ein from the government which is crazy as a tp id should be fine to validate the account since it's for personal communications. It works when you get a cell phone. We use it so that our home phone can get sms and not our cells as we like group sms through 3CX for things like package delivery.

We get that this may be driven by T-Moble as Flowroute has suggested but staff up and do not send out email stating that no one will be working on this over the weekend...

This problem required a ramp up in staff and 24/7 support till the issues are mitigated and clearer directions through the process.

We still have clients that have not had a response.

Other providers do not seem to have the same urgency which is odd.

We are all for kicking phone spam to the curb, but this was a bad way to achieve it.
 
@illcsales We are in the process of moving all our trunks to Twilio. Much better system for handling these things.
 
Wanted to add my own frustration with Flowroute and how they're handling this. We only use SMS for direct P2P communication using 3CX and our customers (typically for support communication). Today we were told explicitly that this kind of communication is no longer supported AT ALL regardless of how we complete our request. This is super frustrating and I know it's not 3CX's fault, but plenty of 3CX users use SMS messaging for things outside of the scope of this new regulation.

From Flowroute support:
Business messaging is the intended use of 10DLC. Nonetheless, 10DLC is required because Flowroute's messaging traffic terminates at an A2P business messaging gateway. Regardless of the amount of outbound text, 10DLC is required for all corporate phone numbers sending outbound messages. Personal text messaging (P2P: person-to-person) isn't currently supported via Flowroute.

We won't be to be able to proceed with your 10DLC request.
 
  • Like
Reactions: illcsales
@illcsales We are in the process of moving all our trunks to Twilio. Much better system for handling these things.
Hey, I'm not opposed to moving my services. Can you post an update if you're able to use Twillio with 3CX for P2P messaging?
 
Going to post this again we need more choices here in the US any update on Voip.ms getting SMS certified?

And 3CX are there any others in the mix we basically had our legs kicked out from under us with this Flowroute stuff and the dwindling certified trunk providers, hoping there is something in the works;)

One of the selling points for 3CX has always been its open standards approach to SIP trunk providers which allow providers to seek certification unfortunately the number of preferred providers has dwindled down to two over recent times both of which do not provide a full complement of capabilities for what 3CX offers.

There are 3 supported providers that lack the same full complement of 3CX offerings, however two of them are now under the same corporate umbrella.

There are currently 10 supported providers available to dedicated systems, however only one Skyetel provides a somewhat complete compliment of what 3CX offers, unfortunately they changed their pricing last fall to require a minimum of $25 a month which makes it unattractive to very small businesses that self-host.

After the fiasco with Flowroute and 10DLC it is clear that we are very limited in the US not the same as the days of RBOC but close, one in the number of certified providers and two with providers that actually support all that 3CX can do.

Yes, we can of course piece meal some functions, but we always run into conflicts with a chosen provider when a client changes their mind says something like I want to sms on my main BTN or i want to fax.

Would it be possible for 3CX to add some focus to the acquisition of new certified providers in the US so we have a full complement of offerings the map to 3CX's capabilities and not be limited to one or two carriers?

Thank you for the consideration...
 
I've pointed out this thread to some higher ups at Flowroute. I encourage people to keep posting here, and note your approx usage / DIDs, and $'s spent with Flowroute that you are moving away from them.
 
This is the third company that I've steered to Flowroute and I've used them for over a decade now. We vary between $400 and $1,000 a month depending on our usage. Definitely willing to move our services if someone else can provide P2P SMS for our users.
 
Turns out the big thing that is missing from Flowroute for A2P SMS and 3CX is opt-out settings.

Twilio handles this for you so you don't have to in your app.

The other big thing is making sure that you give notice on your website anywhere you are collecting phone numbers.

What took over a month to end up failing with flowroute was completed in 3 days with Twilio.
 
  • Like
Reactions: Christian SCG
Status
Not open for further replies.

Latest Posts

Forum statistics

Threads
111,973
Messages
590,074
Members
164,893
Latest member
jbergeon