-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
167 lines (132 loc) · 4.88 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
==============================================
Microsoft Translator script for Asterisk
==============================================
This script makes use of Microsoft Translator to translate
text strings and return them as channel variables.
------------
Requirements
------------
Perl The Perl Programming Language
perl-libwww The World-Wide Web library for Perl
perl-Crypt-SSLeay or perl-IO-Socket-SSL for use of SSL/TLS encryption
Internet access in order to contact MS and get the language data.
To use this script you have to subscribe to the Microsoft Translator API on Azure Marketplace:
https://datamarket.azure.com/developer/applications/
and register your application with Azure DataMarket:
https://datamarket.azure.com/developer/applications/
------------
Installation
------------
To install copy mstrasnlate.agi to your agi-bin directory.
Usually this is /var/lib/asterisk/agi-bin/
To make sure check your /etc/asterisk/asterisk.conf file
-----
Usage
-----
agi(mstranslate.agi,"text",[target language],[source language]):
The text string will be send to MS Translator for translation to target language.
The translated text will be stored as a channel variable named 'mstranslation'.
The setting of source language is optional, if not set the tranlator engine
will try to auto detect it.
If both target language and source language are omitted the script performs language
detection on the given text string and returns the two-character language code
as the value of the channel variable 'mslang'
--------
Examples
--------
sample dialplan code for your extensions.conf
;Translate a text string from english to french:
exten => 1234,1,agi(mstranslate.agi,"This is some random text.",fr)
exten => 1234,n,Verbose(1,Translated text: ${mstranslation})
;Translate from greek to german:
exten => 1234,1,agi(mstranslate.agi,"Αυτό είναι ένα απλό τέστ στα ελληνικά.",de)
exten => 1234,n,Verbose(1,Translated text: ${mstranslation})
;Translate from japanese to english:
exten => 1234,1,agi(mstranslate.agi,"これは、日本の簡単なテストです。良い一日を。",en)
exten => 1234,n,Verbose(1,Translated text: ${mstranslation})
;Translate string to many languages:
exten => 1235,1,Set(MYTEXT="This is some random text for translation.")
exten => 1235,n,agi(mstranslate.agi,"${MYTEXT}",it)
exten => 1235,n,Verbose(1,In Italian: ${mstranslation})
exten => 1235,n,agi(mstranslate.agi,"${MYTEXT}",fr)
exten => 1235,n,Verbose(1,In French: ${mstranslation})
exten => 1235,n,agi(mstranslate.agi,"${MYTEXT}",ja)
exten => 1235,n,Verbose(1,In Japanese: ${mstranslation})
exten => 1235,n,agi(mstranslate.agi,"${MYTEXT}",es)
exten => 1235,n,Verbose(1,In Spanish: ${mstranslation})
;Detect text language:
exten => 1236,1,Set(MYTEXT="This is some random text for detection.")
exten => 1236,n,agi(mstranslate.agi,"${MYTEXT}")
exten => 1236,n,Verbose(1,Detected language: ${mslang})
-------------------
Supported Languages
-------------------
Translation is possible between any two of these languages:
ar bg ca
zh-CHS zh-CHT
cs da nl
en et fi
fr de el
ht he hi
mww hu id
it ja ko
lv lt no
pl pt ro
ru sk sl
es sv th
tr uk vi
-----------------------
Security Considerations
-----------------------
This script contacts MS servers in order to get language and text data.
The script uses TLS to encrypt all the traffic between your pbx and MS servers
so no 3rd party can eavesdrop your communication.
-------
License
-------
The MStranslate script for asterisk is distributed under the GNU General Public
License v2. See COPYING for details.
--------
Homepage
--------
http://zaf.github.com/asterisk-mstranslate/
---------------
API Description
---------------
Text Translation:
Request
-------
GET http://api.microsofttranslator.com/V2/Http.svc/Translate
Parameters
----------
appId
Required. If the Authorization header is used, leave the appid field empty else a string
containing "Bearer" + " " + access token.
text
Required. A string representing the text to translate.
from
Optional. A string representing the language code of the translation text.
to
Required. A string representing the language code to translate the text into.
contentType
Required. The format of the text being translated. The supported formats are "text/plain"
and "text/html". Any HTML needs to be well-formed.
category
Optional. The category of the text to translate. The only supported category is "general".
Response
--------
A string representing the translated text.
Language Detection:
Request
-------
GET http://api.microsofttranslator.com/V2/Http.svc/Detect
Parameters
----------
appId
Required. If the Authorization header is used, leave the appid field empty else a string
containing "Bearer" + " " + access token.
text
Required. A string containing some text whose language is to be identified.
Response
--------
A string containing a two-character Language code for the given text.