Вверх ↑
Этот топик читают: Гость
Ответов: 161
Рейтинг: 0
#1: 2019-03-10 10:18:12 ЛС | профиль | цитата
Задача:
1.Любыми средствами Hiasm подключить(соединить) Мобильное устройство на базе Android. с пк на базе Windows 7. Желательно Bluetooth но рассмотрю любые варианты.
2.Набрать номер на ПК и использовать устройства ввода и вывода ПК для общения по телефону.
3.(пункт 1 и 2 важнее, но это тоже интересно) Можно ли как-то программно понять, что пользователь взял трубку и положил? Типа гудки уже не идут. Возможно нужно как-то распознать тональный сигнал? Или устройство (Телефон) передают каике-то разговор начался и закончился.
Пожалуйста не судите строга, дайте дельный совет. а не гоните в шею. Я по шерстил в интернете, но нечего дельного нету. Слышал только что это через COM порт вроде можно. а как не понимаю.
Возможно ли такое вообще сделать?
карма: 0
Даже великие ошибаются
0
vip
#1.1контекстная реклама от партнеров
Главный модератор
Ответов: 2654
Рейтинг: 353
#2: 2019-03-10 11:29:04 ЛС | профиль | цитата
egorhay писал(а):
Пожалуйста не судите строга, дайте дельный совет. а не гоните в шею.

А очень хочется дать дельный совет...
карма: 8
Дорогу осилит идущий. HiAsm.NET is based on HiAsm 5
0
Ответов: 1247
Рейтинг: 67
#3: 2019-03-10 11:59:03 ЛС | профиль | цитата
egorhay, сделать возможно, но стабильно работать не будет, с телефоном куча проблем. Лучше смотри в сторону SIP телефонии
карма: 2

0
Ответов: 161
Рейтинг: 0
#4: 2019-03-10 12:30:10 ЛС | профиль | цитата
Konst писал(а):
Лучше смотри в сторону SIP телефонии

Допустим возьму sip, а какими средствами это в hiasm осуществить? Мне нужно диалог с клиентом записывать в wav
карма: 0
Даже великие ошибаются
0
Ответов: 1247
Рейтинг: 67
#5: 2019-03-10 12:46:03 ЛС | профиль | цитата
я делал подобное с calloffice через CMD, но он не бесплатный
карма: 2

0
Ответов: 687
Рейтинг: 7
#6: 2019-03-18 21:32:56 ЛС | профиль | цитата
А если через tаsker создать алгоритм опроса вебсервера в хиасм? Запускается и таскер шлет запрос на наличие номера для набора у сервера каждую секунду по http, запоминая его в переменную. После производит набор и включает запись (кажется есть такое у него). Дальше сохраняет и отправляет файл как-то серверу (по блютус, через гугл драйв, на фтп). Смотрел его поверхностно, но вполне рабочий инструмент, а экспорт в apk потом создает законченный продукт.

Редактировалось 2 раз(а), последний 2019-03-18 21:34:07
карма: 0

0
Ответов: 161
Рейтинг: 0
#7: 2019-03-19 15:59:36 ЛС | профиль | цитата
Я сделал проще) Набрать номер можно осуществить помощью пакета Андроид(hiasm) там просто создаем службу с клиентом tcp, подключаемся к серверу на пк. ну и в свою очередь сервер отправляет номер Андроиду. Вот схема. но у меня почему то приложение вылетает


Add(Service,8179321,203,63)
{
ServiceName="call"
}
BEGIN_SDK
Add(ServiceEditMultiEx,12515770,21,21)
{
WorkCount=#24:doStart=Запускает сервис|
EventCount=#
Width=913
Height=449
}
Add(ChildService,9355908,518,49)
{
ForegroundNotification="Mess"
Point(doStartForeground)
link(onStart,236362:doEvent1,[(562,62)(562,76)])
link(onDestroy,7147207:doDisconnect,[(562,76)(562,132)(331,132)(331,188)])
}
Add(Hub,236362,574,70)
{
link(onEvent1,9355908:doStartForeground,[(600,76)(600,72)(506,72)(506,69)])
link(onEvent2,15008546:doEvent1,[(600,83)(600,125)(289,125)(289,167)])
}
Add(Hub,15008546,301,161)
{
InCount=3
OutCount=1
link(onEvent1,15673110:doExec,[(327,167)(327,129)(303,129)(303,90)])
}
Add(AsyncTask,15673110,315,84)
{
link(onBackground,7147207:doConnect,[(359,90)(359,136)(331,136)(331,181)])
}
Add(TCPClient,7147207,343,175)
{
IP="192.168.1.7"
Port=6000
Point(isClosed)
link(onConnectResult,15840290:doData,[(387,181)(387,223)(289,223)(289,265)])
link(onError,15008546:doEvent2,[(387,188)(387,181)(289,181)(289,174)])
}
Add(DoData,15840290,301,259)
{
Data=String(1)
link(onEventData,10781888:doListenerState,[])
}
Add(SimpleStreamRW,10781888,343,252)
{
ListenerState=0
BufferSize=200
Point(WritingData)
Point(doListenerState)
link(onRead,15510993:doEvent1,[])
link(InputStream,7147207:InputStream,[])
link(OutputStream,7147207:OutputStream,[])
}
Add(Timer,8485628,182,315)
{
Interval=3000
Enable=1
link(onTimer,14366259:doCompare,[])
}
Add(If_else,14366259,245,315)
{
Op1=String(true)
link(onTrue,15008546:doEvent3,[(289,321)(289,181)])
link(Op2,7147207:isClosed,[(258,261)(363,261)])
}
Add(Intent,886680,763,259)
{
StandardAction=3
Point(doUri)
}
Add(Permission,4981911,763,217)
{
PermName=28
}
Add(Hub,15510993,637,252)
{
link(onEvent1,4320921:doStrCat,[])
link(onEvent2,886680:doStartActivity,[])
}
Add(StrCat,4320921,672,252)
{
Str1="tel:"
link(onStrCat,886680:doUri,[(734,258)(734,293)])
link(Str2,10781888:Data,[(685,240)(517,240)(517,296)(349,296)])
}
END_SDK
Add(MainActivity,2953706,140,63)
{
AppName="call"
Package="cll.callpoj"
VersionCode=2
Version="1.2"
Caption="call"
AppIcon=[ZIP3E08010078DAED9D098C144514407B5C6045C031086BC063F042F0D696188F384451242A982851422408A841304611838A6C2B31787048C044D40563048D242841144848C628E11444D11088711505E41C0ECD82B333FE9AAE9EED2AF680D9EAAA5F337FC833FCC5EDAEFEAFBBA7BBBA7EB5E3C4E08FE739F0DF1E4EAFD3634E95E338BD00F811FB61FEE7FE27E674EEE0E4093EAEEB12D1D10E381B684BB928497A02C380D9C02220056C06760047815C8843C0AFC03AE02B603A3004B884F268051D807EC0446029B04FF2DB1A0E00CB80D14057CA351A62C0EDC047C03F0A7D37470658018CE4FB1C79D0CFC5C064E0774DCE9B623FF00AD0859C44CE69FCFBF85BC3CE1B839D7B66006792A748B81FF809A17719765D790FF952C65DFC7A3C67191FF3FB4A72581CB702DF58E83DCC1EE02172794A7407BEB0DCBB4C0DD086DCB6C8A3C0C112731FB004684F8E1BE57CE0EB12F51E6615D0997C0B7D378F0387CBC07DC02F400F729FCFC1CA32F21E6637D0A78CDD0F00D265EA3EDC5F34B00CDD4F00EACBDC7D403D7F9E540EDECF003E25E72790058697B8FB04B0895C37FB3C715089BAEF0BEC25C72DC2C6A2549598FB31C07FE4F6A4995A42EE2793CFA2EE093A96409FCE4C725934D758ECBE02984B0E5B85ADD7816CFCF467E4AFD5F4B3D07D7B3E5E9AFCB5BE2F206E99FB4E25304E030B1B2C737F16B09EBC2963B065FDB9DF913365FCCCEF9D6CB9D6A3EF7B75B03EB29B2D1A83BF809C29E5458BCEFBEF902FA57CCE8F291BDCBF4ABE94B2D0A2BAF3A7C9975216F0FE521BDC3FC2FB26B0E5F018B015F812781B98CFC7D66177FFA145E7FC01089FE12EE5D7CB4D1D3F5700B390EEB3EF5BE4BEB7EBCF8981A56F94D505B9A7D0FEA4EBCFE781C5FD348BEEF159DFDE3644B533C53E1765F5163F2018DF35C6B2E7B8CB91F48B8C53B03D5D0CD68E1FB1B01E7C1A02F77FF3B183AAB6A98AF7B1EADC86BF80EB2C733F0C81FB35C079116CDB39C0464DDBC09E8D9C6B99FB1B813AC3EEDF75FD39F9A27C5EBD2CE2EBD42916D67BB3BAFB9D06BDB3FD6E84A66D6D13D1383536DF437F0BC7EF54026B0DBA3F6EE81AC953B80D297E0CD938766FA6E17BA3070C6E3B9B9FE5402BC76C4FB4A82F57A6BFC17E3256FF3814410ED875DA8A22F6DB3940378BC76BB3FBE25D06FBF34622AB5B18C4FB188F37D3EEADFC782F85391C161B3CEF8F459C1736BFEFBDC063C024E0191E5F5A42F5594F18743FBE4C6ADEB17299AB6FAE64996ACABFF1B19B1B0CB97F9DF26F9C2986DCD750EE8D73BD6B66EE9DF5BC8F891C98BDBF596DC03D9BFBE302CABF714618EADBEB47B9473196678F01FF1328F728986DC0FD22CA3B0AAEE5E7619DEEB7F2E7EC947FF3D77CAB0C8C77EB4DB947C170AA612FEBF79AEED0EC7E16E51D0DA334BB67F71771CA3B9AF1FBDB35FB1F457947C310CDEEBFB7A8A6AD1CAEF975D7BADC427947C320CDEEE753CE51A1F35D994723AAD3218AE30E1ACB53D6E89C972B4BC73E2A3A681ED3B79A728E8AA19ACFFDCF52CE51B154B3FF04E51C551D8FCE399AD652CE51315AF3B1FF16E51C15BAE7E17E93728E862A03F5BB5329EF68B8CFC0188FE9947734BC66C0FF07947734AC34E09FCD97D19E728FE25D0C870DD5F30DA3FC1BE74A8335FCAC86B80D3928AB317E32F3C88151E618F6CF78833C18630902FF0C36675267F2A19DD548FCE778ADC16DE4442BDB11F90FEABD5F222FDA4823F31F7EBF4D5BF213F93C4E98DF71B492EA8122A51B72FF8C2D2ECDFD1215975BE09FB18BB7959CA9A58725FE197FD27831E5C42DF2CFD8C6C72A903B75757E19CBF68185E44D29FB2CF3CFB889BC29639B85FE53E44D196B2CF45F4FFD02CA586CA17FC60072A784972DF54FCF08D470A7A5FE3D72A7AC0FA09EFC97355B2CF43F8EBC29E33D0BFDF7256FCAB8DBC2FBBF8EE44DE95C8FBB2DF24FB5E3EA996991FFA7C89772FA58E29EBD57B50BF98A84CD16F8FF843C45C683C8DD1F032E224F918E07F811B1FF19E4A86CCF0107A93E48DB39601D42FFCF911B6D5CC5AFB3B1B8FFCDA577BFEAC643E4FF61F2A19D7648EE0797930BA3F50126FB85D95CD4179207A3DCE0EA9D133CCC78CA3F0A061A1823B2D1A5B981303156A37B360FB54B3947C7544DFE5FA05CA3E5F988BF0B96F13E28CA35EEEB812311B8DF0974A5FC5AC1D5C01F0ADD67684C9F7574073629F23F89F269259DF877766BE7FEA377FFDA0BBB4FAF29D2FD2297E6F92A15D8B8CC7F4FC1FD3CEAE329397A9E444DF97E6030E54A1F3A3FBC9E80D594CC05F6BAFE3B9E0F01AB8027691C4F69FBA70FBE4FAEF0C92673E14FD671AAC371CA712AC57F0EFF72AE8EC549E17F779C7843ECB1B852FC752726FE7A6881B57E9C1416E7388920E6AD0F5690E171A5B838A782C7691EC7C4C51756E80571B5B0F8A001D9429C105617C47585382E2E9EC72929F6A4D811E386D5F9CBCF48719D14A71DB1BD0DABF7B7478E5392FE86E6C4A4E654149A134B17F29B6F4E3C5368AEAF3E5B587DDA5F706175697FC15EB0BA5A7FC1A96075297FC1B5812ECFDFAE74383BC9FC6A1385B83ADFACA4B027F2C56782EDF02A0A71FE6FE90659E13D392DEEA8F9E625A438291E0842EC39E291E28907464ED8CFFDB8423A90C271466A5E466A5E9DD43C394E4BCD93E35AA9B9B55273E53825355F8E3DB1F92DC6D2E6B514678B88E574CA71AC85D891E3A41427A4382EC515D2793126C58E1C574B71528A134DC619476C40E371A5B2385B541C17FC361B7B52821B8DE52F1A39AE16F7E7709C9604A7A51DA0AE911DA2B9E3F5841DD8138F57D6A0B87480858F57D600E19BB74EFAE2CD4871563C3E618531314E558A716D3CD7F4E77FD8B85BA9]
link(onCreate,8179321:doStart,[])
}

Вот ну и потом мне нужно чтобы человек услышал аудио файл и смог дать голосовой ответ. Потом C# распознает что сказал клиент. и записывает результат.
А вот как я решил проблему подключения . чтобы подать звук в микрафон телефона, и звук с динамика на микрафон пк. Я просто купил делител с моно на стерео. И поменял их местами.
Скрин

Вот теперь есть проблема. как понять когда клиент взял трубку а когда положил.
карма: 0
Даже великие ошибаются
0
7
Сообщение
...
Прикрепленные файлы
(файлы не залиты)