whatsapp-docs-mcp 1.0.5 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/README.md +47 -139
  2. package/docs/ativos_da_conta/outros_ativos/display_names.md +9 -9
  3. package/docs/ativos_da_conta/outros_ativos/official_business_accounts.md +27 -27
  4. package/docs/ativos_da_conta/telefones_comerciais/phone_numbers.md +151 -27
  5. package/docs/business_profiles.md +72 -0
  6. package/docs/business_scoped_user_ids.md +1533 -0
  7. package/docs/dados_privacidade_e_politica/encryption.md +1 -1
  8. package/docs/flows/changelog.md +6 -6
  9. package/docs/flows/gettingstarted/health_insurance.md +12 -6
  10. package/docs/flows/gettingstarted/personalised_offer.md +6 -6
  11. package/docs/flows/gettingstarted/pre_approved_loan.md +6 -6
  12. package/docs/flows/gettingstarted/purchase_intent.md +2 -2
  13. package/docs/flows/gettingstarted.md +5 -5
  14. package/docs/flows/guias.md +1 -1
  15. package/docs/flows/playground.md +1 -1
  16. package/docs/flows/referencia.md +1 -1
  17. package/docs/flows/support.md +3 -3
  18. package/docs/flows.md +2 -2
  19. package/docs/insights/analytics.md +200 -66
  20. package/docs/ligacoes/call_settings.md +129 -57
  21. package/docs/ligacoes/calling.md +33 -16
  22. package/docs/ligacoes/integration_examples.md +526 -0
  23. package/docs/ligacoes/pricing.md +11 -300
  24. package/docs/ligacoes/sandbox.md +160 -0
  25. package/docs/ligacoes/video_calling.md +8 -0
  26. package/docs/mensagens/interactive_media_carousel_messages.md +256 -0
  27. package/docs/mensagens/interactive_product_carousel_messages.md +181 -0
  28. package/docs/mensagens/limites_de_mensagens/messaging_limits.md +16 -12
  29. package/docs/mensagens/recursos_adicionais/media.md +15 -16
  30. package/docs/mensagens/recursos_adicionais/payload_encryption.md +1 -1
  31. package/docs/mensagens/tipos_de_mensagens/audio_messages.md +11 -11
  32. package/docs/mensagens/tipos_de_mensagens/interactive_flow_messages.md +1 -1
  33. package/docs/mensagens/tipos_de_mensagens/message_with_link.md +1 -1
  34. package/docs/mensagens_de_marketing/changelog.md +299 -0
  35. package/docs/mensagens_de_marketing/features.md +184 -0
  36. package/docs/mensagens_de_marketing/implementacao/get_started.md +17 -21
  37. package/docs/mensagens_de_marketing/implementacao/send_marketing_messages.md +50 -45
  38. package/docs/mensagens_de_marketing/measure_conversion.md +132 -0
  39. package/docs/mensagens_de_marketing/onboarding.md +282 -0
  40. package/docs/mensagens_de_marketing/recursos/automatic_creative_optimization.md +1 -1
  41. package/docs/mensagens_de_marketing/recursos/conversion_measurement.md +1 -1
  42. package/docs/mensagens_de_marketing/visao_geral/overview.md +11 -9
  43. package/docs/messaging_limits/upcoming_changes.md +1 -1
  44. package/docs/modelos/authentication_templates/bulk_management.md +145 -0
  45. package/docs/modelos/authentication_templates/template_preview.md +109 -0
  46. package/docs/modelos/gerenciamento_de_modelos/components.md +23 -23
  47. package/docs/modelos/gerenciamento_de_modelos/template_media.md +1 -1
  48. package/docs/modelos/modelos_de_marketing/marketing_templates.md +20 -20
  49. package/docs/modelos/modelos_de_marketing/per_user_limits.md +7 -5
  50. package/docs/modelos/portfolio_pacing.md +30 -0
  51. package/docs/modelos/visao_geral/overview.md +17 -17
  52. package/docs/pagamentos/payments_br/cards.md +8 -0
  53. package/docs/parceiros/gerenciamento/suporte_ao_parceiro/transferring_wabas_to_customers.md +1 -1
  54. package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/onboarding_business_app_users.md +364 -75
  55. package/docs/parceiros/integracao_de_clientes/cadastro_incorporado/overview.md +34 -30
  56. package/docs/parceiros/migrate_existing_whatsapp_number_to_a_business_account.md +40 -0
  57. package/docs/parceiros/obo_model_deprecation.md +32 -0
  58. package/docs/parceiros/seja_um_parceiro/get_started_for_solution_partners.md +42 -42
  59. package/docs/parceiros/seja_um_parceiro/get_started_for_tech_providers.md +38 -142
  60. package/docs/recado/precos/pricing.md +82 -50
  61. package/docs/recado/precos/pricing_authentication_international_rates.md +16 -18
  62. package/docs/recado/precos/pricing_updates_to_pricing.md +1 -1
  63. package/docs/recado/sobre_a_plataforma/about_the_platform.md +80 -24
  64. package/docs/recado/sobre_a_plataforma/access_tokens.md +19 -19
  65. package/docs/referencia/bot_do_whatsapp_business/bot_details_api.md +4 -758
  66. package/docs/referencia/business/add_phone_numbers_api.md +4 -722
  67. package/docs/referencia/business/business_account_api.md +8 -0
  68. package/docs/referencia/business/client_whatsapp_business_accounts_api.md +4 -1002
  69. package/docs/referencia/business/owned_whatsapp_business_accounts.md +4 -798
  70. package/docs/referencia/business/whatsapp_business_accounts_api.md +4 -1546
  71. package/docs/referencia/business/whatsapp_business_partner_onboarding_to_mm_lite_api.md +4 -779
  72. package/docs/referencia/business/whatsapp_business_pre_verified_phone_number_sharing_api.md +4 -786
  73. package/docs/referencia/business/whatsapp_business_pre_verified_phone_numbers_api.md +4 -882
  74. package/docs/referencia/changelog.md +1837 -3
  75. package/docs/referencia/conta_do_whatsapp_business/assigned_users_management_api.md +4 -2198
  76. package/docs/referencia/conta_do_whatsapp_business/business_account_api.md +4 -263
  77. package/docs/referencia/conta_do_whatsapp_business/business_account_extended_credits_api.md +4 -271
  78. package/docs/referencia/conta_do_whatsapp_business/conversational_automation_api.md +4 -778
  79. package/docs/referencia/conta_do_whatsapp_business/flows_api.md +4 -1528
  80. package/docs/referencia/conta_do_whatsapp_business/in_progress_on_behalf_requests_api.md +1 -1
  81. package/docs/referencia/conta_do_whatsapp_business/migration_intent_api.md +4 -1577
  82. package/docs/referencia/conta_do_whatsapp_business/obo_mobility_intent_api.md +1 -1
  83. package/docs/referencia/conta_do_whatsapp_business/phone_number_management_api.md +4 -1682
  84. package/docs/referencia/conta_do_whatsapp_business/schedules_api.md +4 -1768
  85. package/docs/referencia/conta_do_whatsapp_business/set_obo_mobility_intent_api.md +1 -1
  86. package/docs/referencia/conta_do_whatsapp_business/set_solution_migration_intent_api.md +1 -1
  87. package/docs/referencia/conta_do_whatsapp_business/subscribed_apps_api.md +4 -2174
  88. package/docs/referencia/conta_do_whatsapp_business/template_api.md +4 -972
  89. package/docs/referencia/conta_do_whatsapp_business/whatsapp_business_account_activities_api.md +4 -838
  90. package/docs/referencia/conta_do_whatsapp_business/whatsapp_business_account_api.md +4 -1380
  91. package/docs/referencia/conta_do_whatsapp_business/whatsapp_business_account_solutions_list_api.md +4 -850
  92. package/docs/referencia/groups/groups_invite_link_api.md +8 -0
  93. package/docs/referencia/groups/groups_join_requests_api.md +8 -0
  94. package/docs/referencia/groups/groups_participants_api.md +8 -0
  95. package/docs/referencia/groups/groups_query_api.md +8 -0
  96. package/docs/referencia/grupo/groups_invite_link_api.md +4 -300
  97. package/docs/referencia/grupo/groups_join_requests_api.md +4 -682
  98. package/docs/referencia/grupo/groups_participants_api.md +4 -270
  99. package/docs/referencia/grupo/groups_query_api.md +4 -432
  100. package/docs/referencia/historico_de_mensagens/whatsapp_business_message_history_events_api.md +4 -862
  101. package/docs/referencia/inscricao/application_connected_client_businesses.md +4 -808
  102. package/docs/referencia/inscricao/application_solutions_api.md +4 -870
  103. package/docs/referencia/inscricao/solution_creation_api.md +4 -820
  104. package/docs/referencia/intencao_de_migracao_da_conta_do_whatsapp_business/migration_intent_details_api.md +4 -720
  105. package/docs/referencia/midias/media_api.md +4 -338
  106. package/docs/referencia/midias/media_download_api.md +4 -156
  107. package/docs/referencia/numero_da_conta_do_whatsapp/whatsapp_account_number_api.md +4 -774
  108. package/docs/referencia/perfil_do_whatsapp_business/whatsapp_business_profile_node_api.md +4 -1490
  109. package/docs/referencia/solucao_do_whatsapp_business/accept_deactivation_request_api.md +4 -758
  110. package/docs/referencia/solucao_do_whatsapp_business/access_token_api.md +4 -700
  111. package/docs/referencia/solucao_do_whatsapp_business/reject_deactivation_request_api.md +4 -808
  112. package/docs/referencia/solucao_do_whatsapp_business/send_deactivation_request_api.md +4 -774
  113. package/docs/referencia/solucao_do_whatsapp_business/solution_accept_api.md +4 -808
  114. package/docs/referencia/solucao_do_whatsapp_business/solution_details_api.md +4 -764
  115. package/docs/referencia/solucao_do_whatsapp_business/solution_reject_api.md +4 -794
  116. package/docs/referencia/telefone_do_whatsapp_business/block_api.md +4 -538
  117. package/docs/referencia/telefone_do_whatsapp_business/business_compliance_information_api.md +4 -1604
  118. package/docs/referencia/telefone_do_whatsapp_business/business_encryption_api.md +4 -1398
  119. package/docs/referencia/telefone_do_whatsapp_business/calling_api.md +4 -594
  120. package/docs/referencia/telefone_do_whatsapp_business/encrypted_messages_api.md +4 -478
  121. package/docs/referencia/telefone_do_whatsapp_business/groups_management_api.md +4 -481
  122. package/docs/referencia/telefone_do_whatsapp_business/marketing_messages_lite_api.md +4 -311
  123. package/docs/referencia/telefone_do_whatsapp_business/media_upload_api.md +4 -184
  124. package/docs/referencia/telefone_do_whatsapp_business/message_api.md +4 -1794
  125. package/docs/referencia/telefone_do_whatsapp_business/phone_number_api.md +4 -373
  126. package/docs/referencia/telefone_do_whatsapp_business/phone_number_deregister_api.md +4 -710
  127. package/docs/referencia/telefone_do_whatsapp_business/phone_number_registration.md +4 -776
  128. package/docs/referencia/telefone_do_whatsapp_business/phone_number_verification_request_code_api.md +4 -730
  129. package/docs/referencia/telefone_do_whatsapp_business/register_api.md +4 -407
  130. package/docs/referencia/telefone_do_whatsapp_business/settings_api.md +4 -670
  131. package/docs/referencia/telefone_do_whatsapp_business/verify_code_api.md +4 -742
  132. package/docs/referencia/telefone_do_whatsapp_business/whatsapp_business_account_message_history_api.md +4 -928
  133. package/docs/referencia/telefone_do_whatsapp_business/whatsapp_business_account_official_business_account_status_api.md +4 -1536
  134. package/docs/referencia/telefone_do_whatsapp_business/whatsapp_business_account_phone_number_api.md +4 -1596
  135. package/docs/referencia/telefone_do_whatsapp_business/whatsapp_business_profile_api.md +4 -1474
  136. package/docs/referencia/telefone_do_whatsapp_business/whatsapp_business_qr_code_api.md +4 -1175
  137. package/docs/referencia/telefone_do_whatsapp_business/whatsapp_business_qr_code_management_api.md +4 -1311
  138. package/docs/referencia/telefone_pre_verificado_do_whatsapp_business/request_verification_code_api.md +4 -774
  139. package/docs/referencia/telefone_pre_verificado_do_whatsapp_business/verify_code_api.md +4 -764
  140. package/docs/referencia/telefone_pre_verificado_do_whatsapp_business/whatsapp_business_pre_verified_phone_number_api.md +4 -1378
  141. package/docs/referencia/telefone_pre_verificado_do_whatsapp_business/whatsapp_business_pre_verified_phone_number_partners_api.md +4 -816
  142. package/docs/referencia/usuario/assigned_whatsapp_business_accounts_api.md +4 -860
  143. package/docs/referencia/webhooks/whatsapp_incoming_webhook_payload.md +4 -1651
  144. package/docs/referencia/whatsapp_business_account/extended_credits_api.md +8 -0
  145. package/docs/referencia/whatsapp_business_phone_number/commerce_settings_api.md +8 -0
  146. package/docs/suporte/error_codes.md +88 -89
  147. package/docs/suporte/migrating_from_onprem_to_cloud.md +222 -0
  148. package/docs/suporte/support.md +77 -186
  149. package/docs/suporte.md +77 -186
  150. package/docs/throughput.md +60 -0
  151. package/docs/upcoming_messaging_limits_changes.md +132 -0
  152. package/docs/visao_geral/overview.md +354 -306
  153. package/docs/webhooks/create_webhook_endpoint.md +158 -0
  154. package/docs/webhooks/reference/messages/group.md +182 -0
  155. package/docs/webhooks/referencia/account_update.md +27 -27
  156. package/docs/webhooks/referencia/messages/status.md +35 -35
  157. package/docs/webhooks/visao_geral/message_echoes.md +1 -1
  158. package/docs/webhooks/visao_geral/overview.md +23 -15
  159. package/package.json +1 -1
@@ -0,0 +1,526 @@
1
+ <!-- Source: https://developers.facebook.com/documentation/business-messaging/whatsapp/calling/integration-examples -->
2
+ <!-- Scraped: 2026-01-24T00:28:32.891Z -->
3
+
4
+ # Exemplos de integração
5
+
6
+ Updated: 6 de nov de 2025
7
+
8
+ Este guia explica a integração de plataformas VoIP comuns com a API de Ligações Comerciais do WhatsApp.
9
+
10
+ Este guia tem fins exclusivamente informativos, sem suporte ou garantia de qualquer tipo da Meta ou de qualquer fornecedor. Existem diversas maneiras de integrar, e o guia apresenta apenas uma delas para fins ilustrativos.
11
+
12
+ ## Asterisk usando o SIP
13
+
14
+ ### Visão geral
15
+
16
+ Este guia explica como configurar a [API de Ligações Comerciais do WhatsApp](/documentation/business-messaging/whatsapp/calling) usando sinalização de SIP com o [Asterisk](https://l.facebook.com/l.php?u=https%3A%2F%2Fwww.asterisk.org%2F&h=AT01XdDaDlKwME36VMVEY5oITOXwHjqzPV2wEnYietTEE_6uM2gcABBISADz8MxFX22bBH43bn0NMbSCJAwmqNUz1fWip5xu_ozYSQJJXtMGvS22Xt5uTf6lLVL8EbSvfirxyaGvehOrP_rkXgVfB3pOB28), um PBX (Private Branch Exchange) de código aberto. Você aprenderá a configurar o servidor Asterisk, conectar telefones SIP e lidar com ligações recebidas e feitas no WhatsApp.
17
+
18
+ #### Ligações iniciadas pelo usuário
19
+
20
+ - O usuário do WhatsApp disca o número comercial.- A ligação é recebida pelo Asterisk e direcionada por meio de IVR, que solicita ao usuário que insira uma extensão, registrada no mesmo servidor Asterisk.- Depois, a ligação é conectada à extensão especificada.
21
+
22
+ #### Ligações iniciadas pela empresa
23
+
24
+ - O usuário/agente da empresa se registra no Asterisk usando credenciais de SIP (consulte a seção “[Como configurar um telefone VoIP](#configuring-a-voip-phone)”).- O usuário comercial disca a extensão B2C (comunicação entre empresa e consumidor), que é gerenciada por um sistema IVR. O IVR solicita o número do WhatsApp para fazer a ligação.- Depois, a ligação é conectada ao usuário do WhatsApp.
25
+
26
+ WA – O LEG do Asterisk usará SDES para a troca de chave de criptografia de mídia e opus para codec de áudio
27
+
28
+ Asterisk – O Sip UA usará SDES para a troca de chave de criptografia de mídia e opus ou G711 para codec de áudio
29
+
30
+ ### Pré-requisitos
31
+
32
+ - Implementação do Asterisk: Asterisk implementado (por exemplo, em uma instância pública na nuvem)- Sistema operacional: qualquer sistema operacional compatível com o Asterisk. Por exemplo: CentOS 9- Domínio: o servidor Asterisk pode ser acessado por um domínio público com certificado válido- API do WhatsApp Business: é necessário registrar um número de telefone comercial do WhatsApp e habilitar as ligações.- Compatibilidade com SIP: o [SIP está habilitado](/documentation/business-messaging/whatsapp/calling/sip#configure-update-sip-settings-on-business-phone-number) no número do WhatsApp Business.- SDES: o [SDES está habilitado](/documentation/business-messaging/whatsapp/calling/sip#configure-sdes-for-srtp-key-exchange-protocol) no número do WhatsApp Business.
33
+
34
+ ### Como compilar e instalar o Asterisk
35
+
36
+ Consulte [https://docs.asterisk.org/Getting-Started/Installing-Asterisk/Installing-Asterisk-From-Source/Building-and-Installing-Asterisk/](https://l.facebook.com/l.php?u=https%3A%2F%2Fdocs.asterisk.org%2FGetting-Started%2FInstalling-Asterisk%2FInstalling-Asterisk-From-Source%2FBuilding-and-Installing-Asterisk%2F&h=AT01XdDaDlKwME36VMVEY5oITOXwHjqzPV2wEnYietTEE_6uM2gcABBISADz8MxFX22bBH43bn0NMbSCJAwmqNUz1fWip5xu_ozYSQJJXtMGvS22Xt5uTf6lLVL8EbSvfirxyaGvehOrP_rkXgVfB3pOB28)
37
+
38
+ Este guia foi testado usando o Asterisk versão 22.5.2
39
+
40
+ ### Configuração do Asterisk
41
+
42
+ Esses arquivos de configuração ficam em /etc/asterisk/
43
+
44
+ #### extensions.conf
45
+
46
+ Substitua os espaços reservados a seguir por valores reais
47
+
48
+ - {wa-business-phone-number}: número de telefone do WhatsApp Business- {asterisk-sip-server-dns}: nome DNS do servidor de SIP do Asterisk- incoming\_welcome: incoming\_welcome.wav (não fornecido). Coloque este arquivo em /var/lib/asterisk/sounds- outgoing\_welcome: outgoing\_welcome.wav (não fornecido). Coloque este arquivo em /var/lib/asterisk/sounds
49
+
50
+ ```
51
+ [c2b-sub-dial]
52
+ exten => s,1,NoOp()
53
+ same => n,Read(Digits,incoming_welcome,0,,5, 500)
54
+ same => n,Dial(PJSIP/${Digits})
55
+ same => n,Hangup()
56
+
57
+ [whatsapp]
58
+ exten => _10XX,1,NoOp()
59
+ same => n,Dial(PJSIP/${EXTEN})
60
+ same => n,Hangup()
61
+
62
+ ;Extension for B2C business call through Meta SIP gateway
63
+ exten => b2c-sip,1,NoOp()
64
+ same => n,Read(Digits,outgoing_welcome,0,,5, 500)
65
+ same => n,Dial(PJSIP/whatsapp/sip:${Digits}@wa.meta.vc)
66
+
67
+ ;Extension to handle incoming invite requests from Meta SIP gateway to <wa-business-phone-number>@<asterisk-sip-server-dns>
68
+ exten => _+<wa-business-phone-number>,1,Goto(c2b-sub-dial,s,1)
69
+ ```
70
+
71
+ #### Pjsip.conf
72
+
73
+ Substitua os espaços reservados a seguir por valores reais
74
+
75
+ - {wa-business-phone-number}: o número de telefone comercial- {local-net}: rede local do servidor Asterisk- {external-media-address}: IP público da mídia do servidor Asterisk- {external-signaling-address}: IP público da sinalização do servidor Asterisk- {sip-ua-password}: senha escolhida do agente do usuário de SIP- {domain-name}: nome do domínio atribuído ao servidor Asterisk
76
+
77
+ Os arquivos de certificado devem ser colocados em /var/lib/asterisk/certs/fullchain.cer /var/lib/asterisk/certs/cer.key
78
+
79
+ ```
80
+ [transport-tls]
81
+ type=transport
82
+ protocol=tls
83
+ bind=0.0.0.0:5061
84
+ cert_file=/var/lib/asterisk/certs/fullchain.cer
85
+ priv_key_file=/var/lib/asterisk/certs/cer.key
86
+ method=sslv23
87
+ external_media_address={external-media-address}
88
+ ;External address for SIP signalling
89
+ external_signaling_address={external-signaling-address}
90
+ ;Network to consider local used for NAT purposes
91
+ local_net={local-net}
92
+
93
+ [sdes_endpointtemplate](!)
94
+ type=endpoint
95
+ context=whatsapp
96
+ disallow=all
97
+ allow=OPUS
98
+ direct_media=no
99
+ rtp_symmetric=yes
100
+ force_rport=yes
101
+ rewrite_contact=no
102
+ media_use_received_transport=yes
103
+ media_encryption=sdes
104
+
105
+ [authtemplate](!)
106
+ type=auth
107
+ auth_type=userpass
108
+ password={sip-ua-password}
109
+
110
+ [aortemplate](!)
111
+ type=aor
112
+ max_contacts=1
113
+ remove_existing=yes
114
+
115
+ [aoridentitytemplate](!)
116
+ type=identify
117
+ match_header=X-FB-External-Domain: wa.meta.vc
118
+
119
+ ;SDES users
120
+ [1000](sdes_endpointtemplate)
121
+ auth=1000_auth
122
+ aors=1000
123
+
124
+ [1000_auth](authtemplate)
125
+ username=1000
126
+
127
+ [1000](aortemplate)
128
+
129
+ [1000](aoridentitytemplate)
130
+ endpoint=1000
131
+
132
+ [1001](sdes_endpointtemplate)
133
+ auth=1001_auth
134
+ aors=1001
135
+
136
+ [1001_auth](authtemplate)
137
+ username=1001
138
+
139
+ [1001](aortemplate)
140
+
141
+ [1001](aoridentitytemplate)
142
+ endpoint=1001
143
+
144
+ [1002](sdes_endpointtemplate)
145
+ auth=1002_auth
146
+ aors=1002
147
+
148
+ [1002_auth](authtemplate)
149
+ username=1002
150
+
151
+ [1002](aortemplate)
152
+
153
+ [1002](aoridentitytemplate)
154
+ endpoint=1002
155
+
156
+ [1003](sdes_endpointtemplate)
157
+ auth=1003_auth
158
+ aors=1003
159
+
160
+ [1003_auth](authtemplate)
161
+ username=1003
162
+
163
+ [1003](aortemplate)
164
+
165
+ [1003](aoridentitytemplate)
166
+ endpoint=1003
167
+
168
+ [1004](sdes_endpointtemplate)
169
+ auth=1004_auth
170
+ aors=1004
171
+
172
+ [1004_auth](authtemplate)
173
+ username=1004
174
+
175
+ [1004](aortemplate)
176
+
177
+ [1004](aoridentitytemplate)
178
+ endpoint=1004
179
+
180
+ [1005](sdes_endpointtemplate)
181
+ auth=1005_auth
182
+ aors=1005
183
+
184
+ [1005_auth](authtemplate)
185
+ username=1005
186
+
187
+ [1005](aortemplate)
188
+
189
+ [1005](aoridentitytemplate)
190
+ endpoint=1005
191
+
192
+ ;This endpoint maps to an IVR for C2B calls
193
+ [c2b-sip](sdes_endpointtemplate)
194
+
195
+ [c2b-sip](aortemplate)
196
+
197
+ [c2b-sip]
198
+ type=identify
199
+ endpoint=c2b-sip
200
+ match_header=X-FB-External-Domain: wa.meta.vc
201
+
202
+ ;special endpoint for Meta SIP Gateway integration
203
+ ;This endpoint maps to an IVR for B2C calls
204
+ [b2c-sip](sdes_endpointtemplate)
205
+
206
+ [b2c-sip](aortemplate)
207
+
208
+ [whatsapp](sdes_endpointtemplate)
209
+ type=endpoint
210
+ transport=transport-tls
211
+ disallow=all
212
+ allow=opus,ulaw,alaw
213
+ aors=whatsapp
214
+ from_user={wa-business-phone-number}
215
+ from_domain={domain-name}
216
+ outbound_auth=whatsapp
217
+
218
+ [whatsapp]
219
+ type=aor
220
+ contact=sip:wa.meta.vc
221
+
222
+ [whatsapp]
223
+ type=identify
224
+ endpoint=whatsapp
225
+
226
+ [whatsapp]
227
+ type=auth
228
+ auth_type=digest
229
+ password={meta-sip-user-password}
230
+ username={wa-business-phone-number}
231
+ realm=*
232
+ ```
233
+
234
+ #### rtp.conf
235
+
236
+ ```
237
+ [general]
238
+ ; Hostname or address for the STUN server used for determining the external
239
+ ; IP address and port an RTP session can be reached at. The port number is
240
+ ; optional. If omitted default value of 3478 will be used. This option is
241
+ ; disabled by default. Name resolution occurs at load time, and if DNS is
242
+ ; used, name resolution will occur repeatedly after the TTL expires.
243
+ ;
244
+ ; e.g. stundaddr=mystun.server.com:3478
245
+ ;
246
+ stunaddr=stun.l.google.com:19302
247
+
248
+ rtpstart=10000
249
+ rtpend=60000
250
+ ```
251
+
252
+ ### Como configurar um telefone VoIP
253
+
254
+ Baixe e instale um cliente de telefone por software (por exemplo, [Linphone](https://l.facebook.com/l.php?u=https%3A%2F%2Fwww.linphone.org%2Fen%2Fdownload&h=AT01XdDaDlKwME36VMVEY5oITOXwHjqzPV2wEnYietTEE_6uM2gcABBISADz8MxFX22bBH43bn0NMbSCJAwmqNUz1fWip5xu_ozYSQJJXtMGvS22Xt5uTf6lLVL8EbSvfirxyaGvehOrP_rkXgVfB3pOB28)) para testar chamadas iniciadas pela empresa e pelo usuário.
255
+
256
+ #### Configuração da conta
257
+
258
+ - Selecione uma extensão para se cadastrar como um UA do SIP (extensões 1001 a 1005).- Abra Preferências.- Em “Contas de SIP”, clique em “Adicionar conta”.- Insira os seguintes dados:
259
+ - Endereço de SIP: por exemplo, sip:1001@{asterisk-sip-server-dns}- Endereço do servidor SIP: por exemplo, sip:{asterisk-sip-server-dns};transport=tls- Transporte: TLS- Desabilitar ICE- Habilitar o AVPF- Desabilite a opção "Publicar informações de presença"- Confirme e salve a conta.- Digite a senha quando solicitado (ou seja, {sip-ua-password})- Depois de conectar, retorne para Preferências e selecione a aba "Áudio". Habilite todos os codecs de áudio.- Na aba "Ligações e conversa":
260
+ - Selecione “Criptografia”- Escolha "SRTP-SDES".- Habilite a opção "A criptografia é obrigatória"- Confirme as configurações
261
+
262
+ ### Lista de verificação final
263
+
264
+ - Verifique se os arquivos de configuração incluem os números, as senhas e os nomes de domínio corretos.- Verifique se o seu firewall permite as portas de SIP (5061/TLS) e de RTP (10000-20000).- Para saber mais sobre a configuração de senha do SIP, consulte a [documentação da API de Nuvem do WhatsApp](/documentation/business-messaging/whatsapp/calling/sip).
265
+
266
+ ### Solução de problemas
267
+
268
+ #### Não é possível registrar o UA do SIP
269
+
270
+ Confirme se o URL do SIP está correto e se o domínio está apontando para o servidor Asterisk. Execute o host {domain-name} para verificar se o endereço IP está apontando para o servidor Asterisk
271
+
272
+ ## FreeSWITCH usando SIP
273
+
274
+ ### Visão geral
275
+
276
+ Este guia explica como configurar a [API de Ligações Comerciais do WhatsApp](/documentation/business-messaging/whatsapp/calling) usando o sinalizador de SIP com o [FreeSWITCH](https://l.facebook.com/l.php?u=https%3A%2F%2Fsignalwire.com%2Ffreeswitch&h=AT01XdDaDlKwME36VMVEY5oITOXwHjqzPV2wEnYietTEE_6uM2gcABBISADz8MxFX22bBH43bn0NMbSCJAwmqNUz1fWip5xu_ozYSQJJXtMGvS22Xt5uTf6lLVL8EbSvfirxyaGvehOrP_rkXgVfB3pOB28), uma estrutura de comunicação de código aberto. Você aprenderá a configurar o servidor FreeSWITCH, conectar telefones SIP e lidar com ligações do WhatsApp iniciadas pelo usuário e pela empresa.
277
+
278
+ #### Ligações iniciadas pelo usuário
279
+
280
+ - O usuário do WhatsApp disca o número comercial.- A ligação é recebida pelo FreeSWITCH e direcionada por meio de IVR, que solicita ao usuário que insira a extensão de um agente, registrada no mesmo servidor FreeSWITCH.- Depois que a extensão for inserida, a ligação será conectada ao agente especificado.
281
+
282
+ #### Ligações iniciadas pela empresa
283
+
284
+ - O usuário/agente da empresa se registra no FreeSWITCH usando credenciais de SIP (consulte a seção [Como configurar um telefone VoIP](/documentation/business-messaging/whatsapp/calling/integration-examples#configuring-a-voip-phone) para saber mais).- O usuário empresarial disca a extensão b2c-sip (comunicação entre empresa e consumidor), que é gerenciada por um IVR. Então, o IVR solicita o número do WhatsApp para fazer a ligação.- Depois que o número é inserido, a ligação é conectada ao usuário do WhatsApp via SIP.
285
+
286
+ WA – O LEG do FreeSWITCH usa SDES para a troca de chave de criptografia de mídia com Opus como o codec de áudio FreeSWITCH – O LEG SIP UA usa SDES para a troca de chave de criptografia de mídia com codecs de áudio Opus ou G.711.
287
+
288
+ ### Pré-requisitos
289
+
290
+ - Implementação do FreeSWITCH: FreeSWITCH implementado (por exemplo, em uma instância pública na nuvem)- Sistema operacional: qualquer sistema operacional compatível com o FreeSWITCH. Por exemplo: CentOS 9- Domínio: servidor FreeSWITCH acessível via domínio público com certificado válido- API do WhatsApp Business: é necessário registrar um número de telefone comercial do WhatsApp e [habilitar as ligações](https://developers.facebook.com/documentation/business-messaging/whatsapp/calling/call-settings).- Compatibilidade com SIP: o [SIP está habilitado](/documentation/business-messaging/whatsapp/calling/sip#configure-update-sip-settings-on-business-phone-number) no número do WhatsApp Business.
291
+ - Observação: o FreeSWITCH é configurado para ouvir a porta 5081 para TLS.- SDES: o [SDES está habilitado](/documentation/business-messaging/whatsapp/calling/sip#configure-sdes-for-srtp-key-exchange-protocol) no número do WhatsApp Business.
292
+
293
+ ### Como compilar e instalar o FreeSWITCH
294
+
295
+ Consulte [https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/Installation/](https://l.facebook.com/l.php?u=https%3A%2F%2Fdeveloper.signalwire.com%2Ffreeswitch%2FFreeSWITCH-Explained%2FInstallation%2F&h=AT01XdDaDlKwME36VMVEY5oITOXwHjqzPV2wEnYietTEE_6uM2gcABBISADz8MxFX22bBH43bn0NMbSCJAwmqNUz1fWip5xu_ozYSQJJXtMGvS22Xt5uTf6lLVL8EbSvfirxyaGvehOrP_rkXgVfB3pOB28)
296
+
297
+ Este guia foi testado usando o FreeSWITCH versão 22.5.2. O FreeSWITCH usa Sofia (uma biblioteca de agentes de usuário de código aberto para o protocolo SIP). Sofia v1.13.17 foi usada para este guia
298
+
299
+ #### Configuração do FreeSWITCH
300
+
301
+ Esses arquivos de configuração ficam em /usr/share/freeswitch/etc/freeswitch
302
+
303
+ **wa-biz-api-dialplan.xml**
304
+
305
+ Coloque o plano de discagem em /usr/share/freeswitch/etc/freeswitch/dialplan/default/wa-biz-api-dialplan.xml
306
+
307
+ ```
308
+ <include><extension name="c2b_calls_sip_ivr"><!--Dial plan is selected if the sip request is coming from Meta--><condition field="${sip_from_host}" expression="^wa.meta.vc$"><!--Verify the ip from where the request is coming, compare the ip with the Meta white listed ip's--><action application="check_acl" data="${network_addr} whatsapp_allow normal_clearing"/><!--Enable encrypted media using SDES--><action application="set" data="rtp_secure_media=true"/><action application="answer"/><!--Add silence stream for 1 sec so that the media path is established between whatsapp and freeswitch to avoid audio clipping--><action application="playback" data="silence_stream://1000"/><action application="play_and_get_digits" data="2 5 3 7000 # $${base_dir}/sounds/incoming_welcome.wav $${base_dir}/sounds/incoming_invalid.wav extension \d+"/><!--While the call is being bridged, play a ringtone for the caller--><action application="set" data="ringback=%(2000, 4000, 440.0, 480.0)"/><!--Offer G711 and Opus for FreeSWITCH-SIP UA leg --><action application="export" data="nolocal:absolute_codec_string=PCMA,PCMU,OPUS@48000h@20i"/><action application="bridge" data="user/${extension}"/><action application="hangup"/></condition></extension><extension name="b2c_calls_ivr"><condition field="destination_number" expression="^b2c-sip$"><!--Enable encrypted media using SDES--><action application="set" data="rtp_secure_media=true"/><action application="answer"/><action application="playback" data="silence_stream://1000"/><action application="set" data="caller_id_check=${caller_id_number}"/><action application="play_and_get_digits" data="2 12 3 20000 # $${base_dir}/sounds/outgoing_welcome.wav $${base_dir}/sounds/outgoing_invalid.wav whatsapp_number \d+"/><action application="log" data="INFO [whatsapp_number] is ${whatsapp_number}"/><!--While the call is being bridged, play a ringtone for the caller--><action application="set" data="ringback=%(2000, 4000, 440.0, 480.0)"/><!--Offer only OPUS--><action application="export" data="nolocal:absolute_codec_string=OPUS@48000h@20i,OPUS@8000h@20i"/><!--Bridge the call by calling META SIP with the WA Number--><action application="bridge" data="sofia/gateway/whatsapp/+${whatsapp_number}"/><action application="hangup"/></condition></extension></include>
309
+ ```
310
+
311
+ Os arquivos de áudio devem ser colocados em /usr/share/freeswitch/sounds (não fornecidos)
312
+
313
+ - incoming\_welcome.wav- Incoming\_invalid.wav- outgoing\_welcome.wav- outgoing\_invalid.wav
314
+
315
+ **whatsapp.xml**
316
+
317
+ Este arquivo configura o portal do WhatsApp. Copie o arquivo para /usr/share/freeswitch/etc/freeswitch/sip\_profiles/external/whatsapp.xml
318
+
319
+ ```
320
+ <!--Gateway configuration for Meta SIP--><!--replace {phone-number},{meta-sip-password} and {domain-name} before starting FreeSWITCH--><include><gateway name="whatsapp"><param name="username" value="{phone-number}"/><param name="password" value="{meta-sip-password}"/><param name="register" value="false"/><param name="realm" value="wa.meta.vc"/><param name="from-user" value="{phone-number}"/><param name="from-domain" value="{domain-name}"/></gateway></include>
321
+ ```
322
+
323
+ Substitua os espaços reservados a seguir por valores reais
324
+
325
+ - {phone-number}: número de telefone do WhatsApp Business- {meta-sip-password}: senha de SIP emitida pela Meta. Para saber mais sobre a configuração de senha do SIP, consulte a [documentação da API de Nuvem do WhatsApp](/documentation/business-messaging/whatsapp/calling/sip#include-sip-user-password).- {domain-name}: nome DNS do seu servidor SIP FreeSWITCH
326
+
327
+ **acl.conf.xml**
328
+
329
+ Abra /usr/share/freeswitch/etc/freeswitch/autoload\_configs/acl.conf.xml
330
+
331
+ Adicione a seguinte lista no elemento `network-lists`.
332
+
333
+ ```
334
+ <!--IP addresses from Meta that are allowed to send SIP requests via the gateway. Keep this up to date--><list name="whatsapp_allow" default="deny"><node type="allow" cidr="31.13.24.0/21"/><node type="allow" cidr="31.13.64.0/18"/><node type="allow" cidr="45.64.40.0/22"/><node type="allow" cidr="57.141.0.0/21"/><node type="allow" cidr="57.141.8.0/22"/><node type="allow" cidr="57.141.12.0/23"/><node type="allow" cidr="57.144.0.0/14"/><node type="allow" cidr="66.220.144.0/20"/><node type="allow" cidr="69.63.176.0/20"/><node type="allow" cidr="69.171.224.0/19"/><node type="allow" cidr="74.119.76.0/22"/><node type="allow" cidr="102.132.96.0/20"/><node type="allow" cidr="103.4.96.0/22"/><node type="allow" cidr="129.134.0.0/16"/><node type="allow" cidr="147.75.208.0/20"/><node type="allow" cidr="157.240.0.0/16"/><node type="allow" cidr="163.70.128.0/17"/><node type="allow" cidr="163.77.128.0/17"/><node type="allow" cidr="173.252.64.0/18"/><node type="allow" cidr="179.60.192.0/22"/><node type="allow" cidr="185.60.216.0/22"/><node type="allow" cidr="185.89.216.0/22"/><node type="allow" cidr="204.15.20.0/22"/></list>
335
+ ```
336
+
337
+ **vars.xml**
338
+
339
+ Modifique /usr/share/freeswitch/etc/freeswitch/vars.xml
340
+
341
+ ```
342
+ Add line <X-PRE-PROCESS cmd="set" data="rtp_secure_media=mandatory"/> under <include>
343
+
344
+ Replace
345
+ <X-PRE-PROCESS cmd="set" data="default_password=1234"/>
346
+ with (substitute {sip_ua_password} with your password)
347
+ <X-PRE-PROCESS cmd="set" data="default_password={sip-ua-password}"/>
348
+
349
+ Replace
350
+ <X-PRE-PROCESS cmd="set" data="domain=$${local_ip_v4}"/>
351
+ with (substitute {domain-name} with your FreeSWITCH sip server dns)
352
+ <X-PRE-PROCESS cmd="set" data="domain={domain-name}”/>
353
+
354
+ Replace
355
+ <X-PRE-PROCESS cmd="stun-set" data="external_sip_ip=stun:stun.freeswitch.org"/>
356
+ with (substitute {external-ip} with your FreeSWITCH public ip)
357
+ <X-PRE-PROCESS cmd="set" data="external_sip_ip={external-ip}"/>
358
+
359
+ Replace
360
+ <X-PRE-PROCESS cmd="stun-set" data="external_rtp_ip=stun:stun.freeswitch.org"/>
361
+ with (substitute {external-ip} with your FreeSWITCH public ip)
362
+ <X-PRE-PROCESS cmd="stun-set" data="external_rtp_ip={external-ip}"/>
363
+ ```
364
+
365
+ **internal.xml**
366
+
367
+ Modifique /usr/share/freeswitch/etc/freeswitch/sip\_profiles/internal.xml. Procure por
368
+
369
+ ```
370
+ <param name="sip-trace" value="no"/>
371
+ ```
372
+
373
+ Substitua por
374
+
375
+ ```
376
+ <param name="sip-trace" value="yes"/>
377
+ ```
378
+
379
+ **external.xml**. Modifique /usr/share/freeswitch/etc/freeswitch/sip\_profiles/external.xml
380
+
381
+ ```
382
+ Replace
383
+ <param name="sip-trace" value="no"/>
384
+ with
385
+ <param name="sip-trace" value="yes"/>
386
+
387
+ Replace
388
+ <param name="tls" value="$${external_ssl_enable}"/>
389
+ with
390
+ <param name="tls" value="true"/>
391
+
392
+ Replace
393
+ <!--<param name="tls-cert-dir" value=""/>-->
394
+ with
395
+ <param name="tls-cert-dir" value="/usr/share/freeswitch/etc/freeswitch/certs"/>
396
+ ```
397
+
398
+ Verifique se os certificados estão em /usr/share/freeswitch/etc/freeswitch/certs.
399
+
400
+ ### Lista de verificação final
401
+
402
+ - Verifique se os arquivos de configuração incluem os números, as senhas e os nomes de domínio corretos.- Verifique se o seu firewall permite as portas de SIP (5081/TLS) e de RTP (10000-20000).- Para saber mais sobre a configuração de senha do SIP, consulte a [documentação da API de Nuvem do WhatsApp](/documentation/business-messaging/whatsapp/calling/sip#include-sip-user-password).
403
+
404
+ ### Solução de problemas
405
+
406
+ #### Não é possível registrar o UA do SIP
407
+
408
+ Confirme se o URL do SIP está correto e se o domínio está apontando para o servidor Freeswitch. Execute o host {domain-name} para verificar se o endereço IP está apontando para o servidor Freeswitch
409
+
410
+ #### Rastrear mensagens de SIP
411
+
412
+ Inicie o CLI (/usr/share/freeswitch/bin/fs\_cli) para visualizar mensagens de SIP
413
+
414
+ ## FreeSWITCH usando a Graph API e sinalização de webhook
415
+
416
+ ### Visão geral
417
+
418
+ Este guia explica como configurar a [API de Ligações Comerciais do WhatsApp](/documentation/business-messaging/whatsapp/calling) usando [sinalização da API de Nuvem do WhatsApp](/documentation/business-messaging/whatsapp/calling/business-initiated-calls) com [FreeSWITCH](https://l.facebook.com/l.php?u=https%3A%2F%2Fsignalwire.com%2Ffreeswitch&h=AT01XdDaDlKwME36VMVEY5oITOXwHjqzPV2wEnYietTEE_6uM2gcABBISADz8MxFX22bBH43bn0NMbSCJAwmqNUz1fWip5xu_ozYSQJJXtMGvS22Xt5uTf6lLVL8EbSvfirxyaGvehOrP_rkXgVfB3pOB28), uma estrutura de comunicação de código aberto e [Janus](https://l.facebook.com/l.php?u=https%3A%2F%2Fjanus.conf.meetecho.com%2F&h=AT01XdDaDlKwME36VMVEY5oITOXwHjqzPV2wEnYietTEE_6uM2gcABBISADz8MxFX22bBH43bn0NMbSCJAwmqNUz1fWip5xu_ozYSQJJXtMGvS22Xt5uTf6lLVL8EbSvfirxyaGvehOrP_rkXgVfB3pOB28), um servidor WebRTC de uso geral. Você aprenderá a configurar o servidor FreeSWITCH, conectar telefones SIP e lidar com ligações recebidas e feitas no WhatsApp.
419
+
420
+ ![](https://scontent-gru2-2.xx.fbcdn.net/v/t39.2365-6/572080785_1362494772245673_6325189235439218390_n.png?_nc_cat=106&ccb=1-7&_nc_sid=e280be&_nc_ohc=nr5_57zpLggQ7kNvwGzIDqc&_nc_oc=Adncy0FoN7hiVbt7c--tSV-S1OaJoPNFZs8qATvLOJBjkhMUwE3s5XrXCIw8-kIL14k&_nc_zt=14&_nc_ht=scontent-gru2-2.xx&_nc_gid=EF87BEZ1IhvM_SV2lmcb6w&oh=00_AfpMwnlPTFySxtraHGUusHoxk1L-v2R46oWpH8ksy0crPw&oe=698E4131)
421
+
422
+ #### Ligações iniciadas pelo usuário
423
+
424
+ - O usuário do WhatsApp disca o número comercial.- A ligação é recebida pelo servidor de webhook que a encaminha para o servidor FreeSWITCH via plugin Janus SIP.- A ligação é recebida pelo FreeSWITCH e direcionada por meio de IVR, que solicita ao usuário que insira uma extensão, registrada no mesmo servidor FreeSWITCH.- Depois, a ligação é conectada à extensão especificada.
425
+
426
+ #### Ligações iniciadas pela empresa
427
+
428
+ - O usuário/agente da empresa se registra no FreeSWITCH usando credenciais de SIP (consulte a seção "[Como configurar um telefone VoIP](/documentation/business-messaging/whatsapp/calling/integration-examples#configuring-a-voip-phone)").- O usuário empresarial disca a extensão b2c-sip (comunicação entre empresa e consumidor), que é gerenciada por um IVR. O IVR solicita o número do WhatsApp para fazer a ligação.- O FreeSWITCH conecta a ligação à extensão registrada no plugin Janus SIP, que a traduz em uma solicitação de API para a Meta.- Depois, a ligação é conectada ao usuário do WhatsApp.
429
+
430
+ O servidor Janus fica entre o WA e o FreeSWITCH e converte mídia do WA (compatível com WebRTC com troca de chave DTLS) em mídia negociada pelo FreeSWITCH (troca de chave SDES).
431
+
432
+ Asterisk – O SIP UA usará SDES para a troca de chave de criptografia de mídia e Opus ou G711 para codec de áudio
433
+
434
+ ### Pré-requisitos
435
+
436
+ - Implementação do FreeSWITCH: FreeSWITCH implementado (por exemplo, em uma instância pública na nuvem)- Implementação do Janus: pode ser implementado na mesma máquina que o FreeSWITCH- Sistema operacional: qualquer sistema operacional compatível com o FreeSWITCH. Por exemplo: CentOS 9- Domínio: os servidores FreeSWITCH e Webhook podem ser acessados por um domínio público com certificado válido- API do WhatsApp Business: é necessário registrar um número de telefone comercial do WhatsApp e [habilitar as ligações](https://developers.facebook.com/documentation/business-messaging/whatsapp/calling/call-settings).- Webhooks: configure o URL de retorno de ligação do webhook apontando para o nome de domínio do servidor de webhook
437
+
438
+ ### Integração com sinalização da API de Nuvem
439
+
440
+ Será necessário implementar um módulo de integração entre o WhatsApp e o Janus para traduzir as mensagens de sinalização da API de Nuvem para o plugin Janus SIP e vice-versa.
441
+
442
+ Você precisará do seguinte:
443
+
444
+ - Um servidor de webhook para receber eventos de webhook de ligações da Meta- Um módulo da Graph API para enviar mensagens de ligação para a Meta- Uma implementação do [plugin Janus para SIP](https://l.facebook.com/l.php?u=https%3A%2F%2Fjanus.conf.meetecho.com%2Fdocs%2Fsip&h=AT01XdDaDlKwME36VMVEY5oITOXwHjqzPV2wEnYietTEE_6uM2gcABBISADz8MxFX22bBH43bn0NMbSCJAwmqNUz1fWip5xu_ozYSQJJXtMGvS22Xt5uTf6lLVL8EbSvfirxyaGvehOrP_rkXgVfB3pOB28) para conectar ao Janus. A implementação do plugin Janus se conectará ao FreeSWITCH usando a extensão 1000, que é reservada para conexão
445
+
446
+ Ligações iniciadas pela empresa
447
+
448
+ - O módulo receberá um convite de SIP por meio do plugin Janus SIP na extensão 1000. O SIP INVITE é convertido em uma [solicitação da Graph API](https://developers.facebook.com/documentation/business-messaging/whatsapp/calling/business-initiated-calls#initiate-call). O SDP recebido no SIP INVITE é enviado verbatim como a oferta do SDP para o WA por meio da chamada da Graph API- Quando a ligação é aceita pelo usuário do WhatsApp, um webhook é recebido. Ao receber o webhook, o plugin SIP Janus aceita o SIP INVITE, passando o SDP de resposta no [webhook de conexão](https://developers.facebook.com/documentation/business-messaging/whatsapp/calling/business-initiated-calls#call-connect-webhook)
449
+
450
+ Ligações iniciadas pelo usuário
451
+
452
+ - O servidor de webhook recebe uma ligação por meio de uma mensagem de webhook contendo o SDP da oferta. Ao receber o convite de ligação, o plugin SIP Janus envia um convite para o FreeSWITCH via extensão 1000. A extensão de destino é **c2b-sip.**- Quando o plugin SIP Janus recebe o 200 OK do SIP, um pedido de aceitação de ligação via Graph API é enviado para a Meta para aceitar a ligação recebida, transmitindo o SDP recebido como parte da resposta do SIP.
453
+
454
+ ### Como compilar e instalar o Janus
455
+
456
+ Consulte [https://github.com/meetecho/janus-gateway](https://l.facebook.com/l.php?u=https%3A%2F%2Fgithub.com%2Fmeetecho%2Fjanus-gateway&h=AT01XdDaDlKwME36VMVEY5oITOXwHjqzPV2wEnYietTEE_6uM2gcABBISADz8MxFX22bBH43bn0NMbSCJAwmqNUz1fWip5xu_ozYSQJJXtMGvS22Xt5uTf6lLVL8EbSvfirxyaGvehOrP_rkXgVfB3pOB28). Este guia foi testado usando a versão 1.3.3
457
+
458
+ ### Configuração do Janus
459
+
460
+ **janus.jcfg**
461
+
462
+ Modifique o janus.jcfg, que pode ser encontrado em /usr/share/janus/etc/janus/janus.jcfg. Defina nat\_1\_1\_mapping para o IP público do servidor Janus.
463
+
464
+ Para iniciar o Janus
465
+
466
+ ```
467
+ /usr/share/janus/bin/janus --debug-level=6 --libnice-debug=on -S stun.l.google.com:19302 --log-file=/var/log/janus.log --config=/usr/share/janus/etc/janus/janus.jcfg
468
+ ```
469
+
470
+ ### Como compilar e instalar o FreeSWITCH
471
+
472
+ Consulte [https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/Installation/](https://l.facebook.com/l.php?u=https%3A%2F%2Fdeveloper.signalwire.com%2Ffreeswitch%2FFreeSWITCH-Explained%2FInstallation%2F&h=AT01XdDaDlKwME36VMVEY5oITOXwHjqzPV2wEnYietTEE_6uM2gcABBISADz8MxFX22bBH43bn0NMbSCJAwmqNUz1fWip5xu_ozYSQJJXtMGvS22Xt5uTf6lLVL8EbSvfirxyaGvehOrP_rkXgVfB3pOB28)
473
+
474
+ Este guia foi testado usando o FreeSWITCH versão 22.5.2. O FreeSWITCH usa Sofia (uma biblioteca de agentes de usuário de código aberto para o protocolo SIP). Sofia v1.13.17 foi usada para este guia
475
+
476
+ **Configuração do FreeSWITCH** Esses arquivos de configuração ficam em /usr/share/freeswitch/etc/freeswitch
477
+
478
+ **wa-biz-api-dialplan.xml**
479
+
480
+ Coloque o plano de discagem em /usr/share/freeswitch/etc/freeswitch/dialplan/default/wa-biz-api-dialplan.xml
481
+
482
+ ```
483
+ <include><extension name="c2b_calls_ivr"><condition field="destination_number" expression="^c2b-sip$"><action application="set" data="rtp_secure_media=true"/><action application="answer"/><!--Add silence stream for 1 sec so that the media path is established between whatsapp and freeswitch to avoid audio clipping. TODO: Investigate if silence can be removed--><action application="playback" data="silence_stream://1000"/><action application="play_and_get_digits" data="2 5 3 7000 # $${base_dir}/sounds/incoming_welcome.wav $${base_dir}/sounds/incoming_invalid.wav extension \d+"/><!--While the call is being bridged, play a ringtone for the caller--><action application="set" data="ringback=%(2000, 4000, 440.0, 480.0)"/><!--WA calls bridged via Janus through extension 1000 only support OPUS. However, the callee might be restricted to other codecs e.g. G722--><!--Therefore , don't restrict to OPUS for C2B calls and offer more codecs to the caller. Transcoding between OPUS and the negotiated codec by the caller--><!--will happen in freeswitch--><action application="export" data="nolocal:absolute_codec_string=PCMA,PCMU,OPUS@48000h@20i,G722"/><action application="bridge" data="user/${extension}"/><action application="hangup"/></condition></extension><extension name="b2c_calls_ivr"><condition field="destination_number" expression="^b2c-sip$"><action application="set" data="rtp_secure_media=true"/><action application="answer"/><action application="playback" data="silence_stream://1000"/><action application="set" data="caller_id_check=${caller_id_number}"/><action application="log" data="INFO [caller id ] is ${caller_id_check}"/><action application="play_and_get_digits" data="2 12 3 20000 # $${base_dir}/sounds/outgoing_welcome.wav $${base_dir}/sounds/outgoing_invalid.wav whatsapp_number \d+"/><action application="log" data="INFO [whatsapp_number] is ${whatsapp_number}"/><!--Add the whatsapp number entered by the user as a custom sip header, Janus will use this WA user number in API request to Meta--><action application="export" data="sip_h_X-WhatsApp-Number=${whatsapp_number"/><!--While the call is being bridged, play a ringtone for the caller--><action application="set" data="ringback=%(2000, 4000, 440.0, 480.0)"/><!--WA calls bridged via Janus through extension 1000 only support OPUS. However, the caller might be restricted to other codecs e.g. G722--><!--Therefore , don't restrict to OPUS for B2C calls and let caller select other codecs--><!--However, force transcoding to OPUS by only offering OPUS to Janus--><action application="export" data="nolocal:absolute_codec_string=OPUS@48000h@20i,PCMU,PCMA"/><!--Bridge the call to extension 1000 to which capi-calling is registered via Janus to route calls to WhatsApp--><action application="bridge" data="user/1000"/><action application="hangup"/></condition></extension></include>
484
+ ```
485
+
486
+ Os arquivos de áudio devem ser colocados em /usr/share/freeswitch/sounds (não fornecidos)
487
+
488
+ - incoming\_welcome.wav- Incoming\_invalid.wav- outgoing\_welcome.wav- outgoing\_invalid.wav
489
+
490
+ **internal.xml**
491
+
492
+ Modifique /usr/share/freeswitch/etc/freeswitch/sip\_profiles/internal.xml. Procure por
493
+
494
+ ```
495
+ <param name="sip-trace" value="no"/>
496
+ ```
497
+
498
+ Substitua por
499
+
500
+ ```
501
+ <param name="sip-trace" value="yes"/>
502
+ ```
503
+
504
+ ### Como configurar um telefone VoIP
505
+
506
+ Consulte a [seção anterior](/documentation/business-messaging/whatsapp/calling/integration-examples#configuring-a-voip-phone).
507
+
508
+ ### Lista de verificação final
509
+
510
+ - Verifique se os arquivos de configuração incluem os números, as senhas e os nomes de domínio corretos.- Verifique se o seu firewall permite as portas de SIP (5061/TLS) e de RTP (10000-20000).- Para saber mais sobre a configuração de senha do SIP, consulte a [documentação da API de Nuvem do WhatsApp](/documentation/business-messaging/whatsapp/calling/sip).
511
+
512
+ ### Solução de problemas
513
+
514
+ #### Não é possível registrar o UA do SIP
515
+
516
+ Confirme se o URL do SIP está correto e se o domínio está apontando para o servidor Asterisk. Execute o host {domain-name} para verificar se o endereço IP está apontando para o servidor Asterisk
517
+
518
+ #### Rastrear mensagens de SIP
519
+
520
+ Inicie o CLI (/usr/share/freeswitch/bin/fs\_cli) para visualizar mensagens de SIP
521
+
522
+ Você achou esta página útil?
523
+
524
+ ![Ícone de polegar para cima](https://static.xx.fbcdn.net/rsrc.php/yR/r/OEXJ0_DJeZv.svg)
525
+
526
+ ![Ícone de polegar para baixo](https://static.xx.fbcdn.net/rsrc.php/yb/r/qKPgNVNeatU.svg)