dslreports logo

talkbot
join:2017-12-11

1 edit

1 recommendation

ObiHAI Obi100/Obi110 Firmware Mod Discussion

So many of us have the Obi1xx series devices that recently stopped connecting to google servers due to a certificate update. This thread is intended to discuss the possibility of modifying the firmware to update the certificate and let these devices work with Google Voice again.

These devices are based on a MIPS-X processor similar to the Sipura ATAs and there is not a lot of tools/docs out there about them except for a Yahoo Group mostly related to DVD player chipsets. The venerable DogFace05 who was an expert with these types of devices once posted that he was able to extract this firmware sucessfully. Not sure if he is still around. Anyone else familiar with this architecture?

It seems that the place to start looking is the end of the firmware update file which contains some kind of table. Then there seems to be a loader section which presumably decompresses one or more other sections and loads them to RAM before executing the firmware.

So the questions are:
Can we extract, modify, and repack the firmware and create proper checksums/signatures?
Where is the certificate stored and in what format?
Can we drop in a new certificate without messing up other things (e.g. if the length of the certificate has changed) or do we need to move the certificate and patch the code pointing to it?
Is updating the certificate enough or is the codebase missing support that is necessary (e.g. if key length has changed)?

Anyone who wants to participate please post your thoughts.

Thanks
Stewart
join:2005-07-13

1 recommendation

Interesting project, though not for me personally, because:

1. IMO An ATA is a crude compromise solution. If I were to add an enhancement to a VoIP device, it would most likely be an IP phone. I do own an OBi110, but only the Line port is in use.

2. IMO GV is a mediocre service that happens to be priced at zero, only a little less expensive than some good ones.

3. My 70+ year old brain can no longer simultaneously hold many details about assembly code for an unfamiliar architecture. Reverse engineering (for me) requires detailed documentation of each step, which I find very tedious.

Some concerns:

The SPA firmware has two integrity checks, MD5 and a proprietary one that preprocesses each byte with a 'secret' algorithm and takes MD5 of the result. If the OBi does something similar, one would have to find the relevant code and decompile it well enough to understand the algorithm. Worse, I am guessing that they instead use a real (cryptographic) signature. Since it's probably not possible to (legally) obtain the private key, one would need to find a vulnerability that permits loading unsigned code.

I'm guessing that several devices will be bricked in the course of development. It's of course possible to unbrick a device by saving the flash before the experiment and restoring it afterwards. However, I don't know whether that's possible by JTAG or other simple method, or whether removal of the flash chip is needed.

Some rays of hope:

On a wired broadband connection, an MITM attack is unlikely, so merely disabling the failing certificate check may be an adequate fix. There is likely a place in the code where toggling a single bit will suffice, certainly by changing one byte. This may be much easier than the proper mod.

One may be able to find a 'remote code execution' vulnerability that can be used to make the patch (either one byte, or the proper one). This would eliminate the need to satisfy the integrity checks.

I assume that ITSPs have a way to present config files by HTTPS, using a cert that the OBi can verify. With that private key, one could write a simple MITM script that would sit between Google and the device, accepting or ignoring the Google cert and presenting the OBi with an acceptable one.

Many years ago, I did a crude MIPS-X disassembler in perl. If you get past decryption / decompression and can't find anything better online, I'll try to find it on an old backup.

jsolo1
Premium Member
join:2001-07-01
PRIL

2 recommendations

to talkbot
Maybe reach out to the guy who wrote this blog article.

»randywestergren.com/reve ··· -part-1/

Might have some insight on how to accomplish this.
Stewart
join:2005-07-13
Thanks, this is really powerful stuff.

Though not directly applicable (OS, architecture and format are all different), the source code of the OBi-specific apps is probably very similar. So, you can work with the 200 stuff in a pleasant environment, find a suitable vulnerability, then check whether it's present in the 110 version.
naf
join:2017-12-12
to talkbot
I tried to get a serial console from the UART on my obi110 today. No luck yet. Guessing at baudrates with my shitty soldering skills and no scope sucks.

There's an SPI port also which might help if we need to bypass any webadmin validation checks and read/write directly to the flash.
talkbot
join:2017-12-11

1 recommendation

Thanks for your replies. Yes the SPI port is broken out to a header so it is easy to read and write the flash chip directly. I think there is only one other testpoint on the board.

If we look at the 2886 firmware update, the firmware bundle starts at 0xF3CEE and has a 1KB header including a version string. The first section has a 34 byte header. The next section starts at 0x1E3CEE. The next section starts at 0x213CEE and it has the text "Goodbye! Reboot Now" at the end so seems like a loader/updater. These are the first 34 bytes of each of those sections.

00 00 04 00 00 7F 81 C4 00 00 00 53 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 04 00 00 7F F6 C4 00 00 00 30 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 12 22 07 0C FF 13 CC 00 00 00 06 00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 E7 7B FF 30

There are also some tables at the end of each of the memory ranges which are unchanged across firmware versions and one example is:

E0 08 00 09 96 C4 87 E0 48 C8 42 41 96 C8 87 E0 E0 04 00 FF 96 C4 40 08 E0 04 00 3D 96 C4 81 14 E0 04 01 00 96 C4 88 28 E0 04 00 11 48 04 22 41 E0 84 01 FF 96 C4 84 1C 96 C0 86 1C E0 12 1C FF 48 12 92 41 E2 52 FF FC 82 52 00 00 60 00 00 19 82 54 00 04 60 00 00 19 82 56 00 08 60 00 00 19 60 00 70 19 82 86 00 00 E0 04 00 01 08 86 00 16 60 00 00 19 60 00 00 19 E0 04 00 02 08 86 00 27 60 00 00 19 60 00 00 19 E0 04 00 03 08 86 00 3B 60 00 00 19 60 00 00 19 E0 04 00 05 08 86 00 33 60 00 00 19 60 00 00 19 E0 04 00 06 08 86 00 2B 60 00 00 19 60 00 00 19 E1 CE 00 01 E2 94 00 10 29 D6 FF E7 60 00 00 19 60 00 00 19 82 9A 00 04 82 98 00 08 82 8C 00 0C 60 00 00 19 08 0C FF F5 60 00 00 19 60 00 00 19 83 44 00 00 60 00 00 19 60 00 00 19 93 04 00 00 60 00 00 19 E3 5A 00 04 E3 18 00 04 E1 8D FF FF 29 80 FF F6 60 00 00 19 60 00 00 19 08 00 FF E7 60 00 00 19 60 00 00 19 82 9A 00 04 82 8C 00 08 60 00 00 19 08 0C FF E1 60 00 00 19 60 00 00 19 93 40 00 00 60 00 00 19 E3 5A 00 04 E1 8D FF FF 29 80 FF FA 60 00 00 19 60 00 00 19 08 00 FF D7 60 00 00 19 60 00 00 19 82 B2 00 04 08 00 FF D3 60 00 00 19 60 00 00 19 82 B0 00 04 08 00 FF CF 60 00 00 19 60 00 00 19 82 9A 00 04 60 00 00 19 E0 3A 00 20 48 3B D2 41 C3 40 00 00 60 00 00 19 60 00 00 19 E0 02 00 C3 D0 40 00 01 E0 36 20 00 48 37 B2 41 E0 06 00 0C 48 06 32 41 E0 C6 25 3E 96 C6 40 04 E0 04 00 0F 48 04 22 41 E0 84 84 04 96 C4 81 00 E0 04 2C 0E E0 86 03 00 96 C6 40 00 96 C4 40 00 E0 06 0E 01 48 06 32 41 E0 04 00 01 48 C4 22 41 96 C4 87 E0 E0 04 00 11 48 C4 22 41 96 C4 87 E0 E0 04 00 05 48 C4 22 41 96 C4 87 E0 08 00 FF 7C 60 00 00 19 60 00 00 19 60 00 00 19 0C FF 00 00

The flash layout ends up looking like:

0x0 - OBI_PARAM_PT section length 0x20000
0x20000 - OBI_PARAM_PT section length 0x20000
0x40000 - blank
0x60000 - OBI_PARAM_PT section length 0x10000
0x70000 - call logs length 0x10000
0x80000 - OB100_DPT section (web files)
0x2D000 - Firmware Start
0x3C000 - Firmware Section 2
0x3E000 - OB100 UNIT INFO
0x3F000 - Firmware Section 3 (loader?)

Maybe something jumps out to someone who has stared at this stuff before.
mazilo
From Mazilo
Premium Member
join:2002-05-30
Lilburn, GA
said by talkbot:

Thanks for your replies. Yes the SPI port is broken out to a header so it is easy to read and write the flash chip directly.

If you provide the layout of the PIN headers dor this SPI port, it may help others to participate the hack. Also, it would be nice to provide what equipment and/or interface you use.
talkbot
join:2017-12-11
As it turns out the "tables" at the end of each firmware section are valid MIPS code (60 00 00 19 is a nop), the loader section is valid MIPS code, and few more code sections mixed in as well. mipsxdis seems to work fine, just need some brains that can effectively parse disassembly output.

kevinds
Premium Member
join:2003-05-01
Calgary, AB
to jsolo1
If one was able to get a root shell, you can do nearly anything...

If the flaw was fixed, downgrade the firmware to a version that it works on...

The hard part is being able to make the desired changes, once you get a root shell, the 'hard' part is done.
Stewart
join:2005-07-13
said by kevinds:

If one was able to get a root shell, you can do nearly anything...

What OS does the 1xx run? (I'm reasonably certain it's not Linux.)
Does it have the concept of 'root', or even of 'shell'?

kevinds
Premium Member
join:2003-05-01
Calgary, AB

1 edit
I was basing it off of the article linked.

Next, I tried to start the telnet daemon but, after a few attempts, I found port 23 was specifically blocked by the appliance. I was eventually able to get a root shell running telnetd on another port:
GET /wifi?checkssid=$(telnetd -p 2280 &) 
 

Reading other parts, it appears to be BusyBox and Bash.

I would be shocked if there is a completely different OS on the OBi2 devices versus the OBi1 series.

I don't have an OBi1 device to test with.. Been looking at an OBi110, but the price of the OBi212 is very close or cheaper than I can find OBi110 units for.

In any case, I don't need it for GoogleVoice, just something to explore and figure out. :)
talkbot
join:2017-12-11
Hi mazilo, the spi header is labeled on the board already and I used a ft2232 based device with flashrom to dump the flash.

The obi 1xx/2xx will probably not have much in common at a binary level, though the 2xx firmware files may be useful in identifying and replacing the certificates.
naf
join:2017-12-12
to talkbot
said by talkbot:

mipsxdis seems to work fine, just need some brains that can effectively parse disassembly output.

Wanna post a link to mipsxdis (yahoo groups appears to not know about it anymore) and/or your dumped flash?

dev_null
Pithy tag line goes here.
join:2002-08-14
New England
to talkbot
I have a 110 that suffers from periodic losses of IP for no apparent reason (other than perhaps old age), so it is relegated ye olde storage box. Willing to contribute it to the cause, PM me.
talkbot
join:2017-12-11
to naf
It is on the Yahoo group under PAP2 folder. You can run the disasm on the fw file too.
naf
join:2017-12-12
to talkbot
So the end of the firmware code is a routine to parse groups of 4 32-bit words.
If the first word is a 1, it does a memcpy from word2 to word3 with a count of word4
If the first word is a 2, it does a does a memset of 0 at word2 with a count of word3 (word4 ignored)
If the first word is a 3, it jumps (jspci?) to the location of word2
Then it grabs the next 4word record and repeats
talkbot
join:2017-12-11
Yes the loaders are very similar to what the pap2 does. The loader for section 3 is simple like you say but the loader for section 2 is more complex as it sets up registers and calls subroutines (probably gunzip). The overall memory layout is still confusing.
naf
join:2017-12-12
The bulk of the instructions in the third section (at 0x00213D1E) are an implementation of MD5: The sine of integers precomputed table is at 0x214FBE and the per-round shift amounts are hardcoded into the very repetitive lsr/lsl instructions.

Meanwhile, I need to find a computer with a parallel port to dump this flash unless someone sends me a link to theirs, wink wink.
talkbot
join:2017-12-11
37F3D0 - code
3BFCD0 - loader 1
3DB9A0 - code
3DFCD0 - loader 2
3F0030 - code (updater/md5)
3FFD44 - loader 3

3B81C4 - table 1
3DF6C4 - table 2
3FF13CC - table 3

It looks like for loader 1&2 which are the same that macro 8 (set r4) points to the start of the compressed section
talkbot

1 edit
If you copy 0x100 to 0x80000 and 0xF3CEE to 0x2D0000 then you will have the basic flash layout and we can reference flash addresses. The instruction to do this is at 0x50 in the firmware file. I can upload my flash dump after I remove the personal details if necessary.

The loader for section 2 starts at 0x3DFCD0 and the table is at 0x3DF6C4.
naf
join:2017-12-12
to talkbot
More than likely those other 2 code sections (they both the same) are an implementation of INFLATE. Some evidence: constants at (fw offset) 0x1a43b4 are the constant 'permutation of code lengths' from zlib's inflate.c, and signsrch claims theres more inflate-related consts around that address.

Maybe its time to just script trying INFLATE on various sections that we haven't already identified?
SArcanine
join:2009-11-09
New York
to Stewart
said by Stewart:

IMO An ATA is a crude compromise solution. If I were to add an enhancement to a VoIP device, it would most likely be an IP phone. I do own an OBi110, but only the Line port is in use.

I like an ATA because it is possible to do isolation if you have an asterisk server be the only thing it can use to communicate. That kind of precludes this project though.
said by Stewart:

The SPA firmware has two integrity checks, MD5 and a proprietary one that preprocesses each byte with a 'secret' algorithm and takes MD5 of the result. If the OBi does something similar, one would have to find the relevant code and decompile it well enough to understand the algorithm. Worse, I am guessing that they instead use a real (cryptographic) signature. Since it's probably not possible to (legally) obtain the private key, one would need to find a vulnerability that permits loading unsigned code.

Not necessarily. There could be something like u-boot on the device that allows for flashing unsigned firmware. So few embedded devices do signature verification that I doubt the obi100 does, but it is definitely possible.
SArcanine
to jsolo1
said by jsolo1:

Maybe reach out to the guy who wrote this blog article.

»randywestergren.com/reve ··· -part-1/

Might have some insight on how to accomplish this.

The only problem is that binwalk produces nonsensical output on the obi100 firmware.
SArcanine
to kevinds
said by kevinds:

I was basing it off of the article linked.

Next, I tried to start the telnet daemon but, after a few attempts, I found port 23 was specifically blocked by the appliance. I was eventually able to get a root shell running telnetd on another port:
GET /wifi?checkssid=$(telnetd -p 2280 &) 
 

Reading other parts, it appears to be BusyBox and Bash.

I would be shocked if there is a completely different OS on the OBi2 devices versus the OBi1 series.

I don't have an OBi1 device to test with.. Been looking at an OBi110, but the price of the OBi212 is very close or cheaper than I can find OBi110 units for.

In any case, I don't need it for GoogleVoice, just something to explore and figure out. :)
Congratulations. You have just found a GPL violation. With some luck, we could get Obihai to release at least some of the firmware source code for the Obi200 series. If we can find GPL code in the Obi100 series, we might be able to make the same case.
SArcanine
to talkbot
Does anyone know how much internal storage the obi100 has? If it is 4MB, maybe we could sequeeze LEDE with Asterisk onto the device so that we could have all of the sources and future changes by Google would be fixable. Otherwise, if Obihai discontinue support for configuring the obi100 devices for Google Voice remotely, people would have plenty of trouble working around that. LEDE+Asterisk would need people to develop a GUI too, but it might be worth considering.
talkbot
join:2017-12-11
to naf
Makes sense. I have sort of blindly tried ziprisc without success but will keep trying. Would have been really nice if pap2info source code was posted.
naf
join:2017-12-12
There appear to be 2 large (~40kb uncompressed) raw DEFLATE streams at (fw) 0x1a44c2 and 0x1aa7b6. The first one contains the string "talk.google.com" atleast...
talkbot
join:2017-12-11

1 edit
Nice one! I was getting there... Should really just have brute forced ziprisc with all possible starting addresses. Doh!

The first entry in the loader table

===============================================
3B81C4
===============================================
00 00 00 01 00 7C 06 84 02 4F 00 00 00 00 00 52
00 00 00 08 00 7C 07 CC 00 00 00 00 00 00 00 00
00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 06 02 4F 00 00 00 00 00 00 00 00 00 00
00 00 00 0B 02 48 00 00 00 00 00 00 00 00 00 00
00 00 00 0C 02 48 00 00 00 00 00 00 00 00 00 00
00 00 00 05 00 2E FC F4 00 00 00 00 00 00 00 00
00 00 00 04 00 1E FC F4 00 00 00 00 00 00 00 00

macro 8 points to that section 7C07CC + 8 = 3807D4 = 1A44C2
talkbot
to naf
I found 13 compressed sections, 4 of which fail to decompress with ziprisc due to length error. might be related to 09 macro value, padding?
talkbot
Here is the interesting output of binwalk on the uncompressed files

2d0438.bin
 
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
 
30bb44.bin
 
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
 
345064.bin
 
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
 
37b238.bin
 
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
 
3807d4.bin
 
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
2800          0xAF0           XML document, version: "1.0"
44156         0xAC7C          XML document, version: "1.0"
44720         0xAEB0          XML document, version: "1.0"
 
386ac8.bin
 
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
7979          0x1F2B          Unix path: /ip/gateway/sip/phone/stun
9524          0x2534          Copyright string: "Copyright(C) 2010 by OBIHAI Technology, Inc. All Rights Reserved."
12535         0x30F7          Unix path: /prov.obitalk.com/obhsnprov/zerotouch/zt?ztcid=%d&ztpid=%s
14282         0x37CA          Unix path: /www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Ty
14333         0x37FD          HTML document header
15676         0x3D3C          Copyright string: "Copyright&#169; 2012 by Obihai Technology, Inc. All rights reserved.</DIV></div></body></html>"
15763         0x3D93          HTML document footer
20880         0x5190          HTML document header
21003         0x520B          HTML document footer
21028         0x5224          HTML document header
21524         0x5414          HTML document header
21620         0x5474          HTML document footer
22672         0x5890          HTML document header
22750         0x58DE          HTML document footer
25346         0x6302          Unix path: /www.w3.org/XML/1998/namespace
47884         0xBB0C          XML document, version: "1.0"
71172         0x11604         Copyright string: "Copyright (c) 1993-1999 ATI - Nucleus PLUS - IDT4640/50 GNU v. 1.11.11"
 
38d30c.bin
 
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
2848          0xB20           CRC32 polynomial table, big endian
6944          0x1B20          CRC32 polynomial table, little endian
11059         0x2B33          Copyright string: "Copyright 1995-2010 Mark Adler "
11631         0x2D6F          Copyright string: "Copyright 1995-2010 Jean-loup Gailly and Mark Adler "
16104         0x3EE8          XML document, version: "1.0"
16456         0x4048          Unix path: /www.google.com/talk/protocol/auth'>
20515         0x5023          Unix path: /mail.google.com/xmpp/client/caps' ver='1.1' ext='voice-v1'/>
24148         0x5E54          XML document, version: "1.0"
24787         0x60D3          Unix path: /www.google.com/voice/inbox/recent/voicemail/
26691         0x6843          Unix path: /www.google.com/voice/settings/editDefaultForwarding/
27875         0x6CE3          Unix path: /accounts.google.com/o/oauth2/token
31528         0x7B28          Base64 standard index table
39464         0x9A28          Base64 standard index table
 
393dec.bin
 
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
 
39475c.bin
 
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
113808        0x1BC90         Copyright string: "Copyright (c) 2010 by Obihai Technology Inc."
120524        0x1D6CC         PEM certificate
121830        0x1DBE6         PEM certificate
123446        0x1E236         Unix path: /fEI0Gj/uK79idtbhhRC4T/c3MU3tMNYU/Pu
123615        0x1E2DF         PEM certificate
124681        0x1E709         PEM certificate
125824        0x1EB80         PEM certificate
126658        0x1EEC2         PEM certificate
128179        0x1F4B3         PEM certificate
129708        0x1FAAC         PEM certificate
227672        0x37958         SHA256 hash constants, big endian
266701        0x411CD         Unix path: /prov.obitalk.com/obhsnprov/sync/autoupdate?model=$DM&mac=$mac&fwv=$FWV
342802        0x53B12         Unix path: /www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
342854        0x53B46         HTML document header
348188        0x5501C         Copyright string: "Copyright&#169; 2012 by OBIHAI Technology, Inc. All rights reserved.</DIV>"
348276        0x55074         HTML document footer
 
3c0038.bin
 
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
 
3c4a64.bin
 
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
 
3dd504.bin
 
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
5951          0x173F          Copyright string: "Copyright 1995-2010 Mark Adler "
10784         0x2A20          Copyright string: "Copyright (c) 1993-1999 ATI - Nucleus PLUS - IDT4640/50 GNU v. 1.11.11"
 
3de998.bin
 
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
7690          0x1E0A          Unix path: /www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
7742          0x1E3E          HTML document header
9386          0x24AA          Copyright string: "Copyright(C) 2010 by OBIHAI Technology, Inc. All Rights Reserved.</DIV>"
9471          0x24FF          HTML document footer
9550          0x254E          Unix path: /www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
9602          0x2582          HTML document header
10565         0x2945          Copyright string: "Copyright(C) 2010 by OBIHAI Technology, Inc. All Rights Reserved.</DIV>"
10650         0x299A          HTML document footer
 
talkbot
join:2017-12-11

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

Looking at the root certificates we find the Equifax 1024-bit SHA1 and so this is probably the deprecated certificate. There are other 2048-bit RSA certificates so we know that is supported. So maybe we can drop in the current Equifax 2048-bit RSA SHA1 certificate google is using but it expires in 9 months. Not sure whether OBI firmware supports SHA256.
talkbot
By comparing the 3.1.1 and 3.2.1 firmwares for the Obi200 I was able to see that they added the GlobalSign R2 root certificate which is valid until 2021.
talkbot
So I tried to insert the new certificate and hastily rebuild the firmware but got the christmas lights so probably it is checking checksums or hashes on each boot.
naf
join:2017-12-12
to talkbot
said by talkbot:

macro 8 points to that section 7C07CC + 8 = 3807D4 = 1AC4C1

Mind moving slow today... help me with this math? 7C07CC --> 3807D4?
talkbot
join:2017-12-11
Well as mentioned the addressing is confusing but 7FFFFF = end of section, in this case 3BFFFF
naf
join:2017-12-12

1 edit
to talkbot
How did you try injecting it? Remove an old cert and hope the deflate'd stream is smaller so as not to overwrite the next stream?
talkbot
join:2017-12-11
Here are the loader tables

===============================================
0x3F13CC
===============================================
00 00 00 01 0C FF 12 4C 00 00 01 00 00 00 00 60		memcpy
00 00 00 02 00 00 02 80 00 00 00 00 00 00 00 00 	memset 0
00 00 00 01 0C FF 00 30 00 04 00 00 00 00 04 87 	memcpy
00 00 00 05 00 11 00 00 40 15 F9 E0 00 00 00 00 	set r24
00 00 00 06 00 01 01 00 00 00 00 00 00 00 00 00 	set r25
00 00 00 03 40 01 00 79 00 00 00 00 00 00 00 00		goto
 
===============================================
0x3DF6C4
===============================================
00 00 00 01 00 7F CC 50 02 4F 00 00 00 00 00 52 	memcpy
00 00 00 08 00 7F CD 98 00 00 00 00 00 00 00 00 	set r4
00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 	set r5
00 00 00 06 02 4F 00 00 00 00 00 00 00 00 00 00 	set r25
00 00 00 0B 02 48 00 00 00 00 00 00 00 00 00 00 	set r29
00 00 00 0C 02 48 00 00 00 00 00 00 00 00 00 00 	set r19
00 00 00 05 00 2F EE 67 00 00 00 00 00 00 00 00 	set r24
00 00 00 04 00 1F EE 67 00 00 00 00 00 00 00 00 	call
 
00 00 00 01 00 7F CC 50 02 4F 00 00 00 00 00 52 
00 00 00 08 00 7E 00 30 00 00 00 00 00 00 00 00 	3c0038
00 00 00 09 00 0B 00 00 00 00 00 00 00 00 00 00 
00 00 00 06 02 4F 00 00 00 00 00 00 00 00 00 00 
00 00 00 0B 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 0C 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 05 00 2F EE 67 00 00 00 00 00 00 00 00 
00 00 00 04 00 1F EE 67 00 00 00 00 00 00 00 00 
 
00 00 00 02 00 13 0C D0 00 00 04 81 00 00 00 00 	memset 0
 
00 00 00 01 00 7F D4 FC 00 00 01 00 00 00 05 25 	memcpy
 
00 00 00 02 00 00 35 40 00 00 08 78 00 00 00 00 	memset 0
 
00 00 00 01 00 7F CC 50 02 4F 00 00 00 00 00 52 
00 00 00 08 00 7E 4A 5C 00 00 00 00 00 00 00 00 	3c4a64
00 00 00 09 00 03 00 00 00 00 00 00 00 00 00 00 
00 00 00 06 02 4F 00 00 00 00 00 00 00 00 00 00 
00 00 00 0B 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 0C 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 05 00 2F EE 67 00 00 00 00 00 00 00 00 
00 00 00 04 00 1F EE 67 00 00 00 00 00 00 00 00 
 
00 00 00 01 00 7F CC 50 02 4F 00 00 00 00 00 52 
00 00 00 08 00 7F D4 FC 00 00 00 00 00 00 00 00 	3dd504
00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 06 02 4F 00 00 00 00 00 00 00 00 00 00 
00 00 00 0B 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 0C 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 05 00 2F EE 67 00 00 00 00 00 00 00 00 
00 00 00 04 00 1F EE 67 00 00 00 00 00 00 00 00 
 
00 00 00 01 00 7F CC 50 02 4F 00 00 00 00 00 52 
00 00 00 08 00 7F E9 90 00 00 00 00 00 00 00 00 	3de998
00 00 00 09 00 70 00 00 00 00 00 00 00 00 00 00 
00 00 00 06 02 4F 00 00 00 00 00 00 00 00 00 00 
00 00 00 0B 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 0C 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 05 00 2F EE 67 00 00 00 00 00 00 00 00 
00 00 00 04 00 1F EE 67 00 00 00 00 00 00 00 00 
 
00 00 00 05 00 12 C0 00 00 00 00 00 00 00 00 00 	set r24
00 00 00 07 00 10 C0 00 00 00 00 00 00 00 00 00 	set r23
00 00 00 06 00 14 00 00 00 00 00 00 00 00 00 00 	set r25
00 00 00 14 00 01 01 00 00 00 00 00 00 00 00 00 	set r28
00 00 00 03 40 02 E7 C5 00 00 00 00 00 00 00 00		call
 
===============================================
3B81C4
===============================================
00 00 00 01 00 7C 06 84 02 4F 00 00 00 00 00 52 
00 00 00 08 00 7C 07 CC 00 00 00 00 00 00 00 00 	3807D4
00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 06 02 4F 00 00 00 00 00 00 00 00 00 00 
00 00 00 0B 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 0C 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 05 00 2E FC F4 00 00 00 00 00 00 00 00 
00 00 00 04 00 1E FC F4 00 00 00 00 00 00 00 00 
 
00 00 00 01 00 7C 06 84 02 4F 00 00 00 00 00 52 
00 00 00 08 00 71 04 30 00 00 00 00 00 00 00 00 	2D0438
00 00 00 09 00 0C 00 00 00 00 00 00 00 00 00 00 
00 00 00 06 02 4F 00 00 00 00 00 00 00 00 00 00 
00 00 00 0B 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 0C 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 05 00 2E FC F4 00 00 00 00 00 00 00 00 
00 00 00 04 00 1E FC F4 00 00 00 00 00 00 00 00 
 
00 00 00 01 00 7C 06 84 02 4F 00 00 00 00 00 52 
00 00 00 08 00 7D 3D E4 00 00 00 00 00 00 00 00 	393DEC
00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 06 02 4F 00 00 00 00 00 00 00 00 00 00 
00 00 00 0B 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 0C 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 05 00 2E FC F4 00 00 00 00 00 00 00 00 
00 00 00 04 00 1E FC F4 00 00 00 00 00 00 00 00 
 
00 00 00 01 00 7C 06 84 02 4F 00 00 00 00 00 52 
00 00 00 08 00 7B B2 30 00 00 00 00 00 00 00 00 	37B238
00 00 00 09 00 1E 00 00 00 00 00 00 00 00 00 00 
00 00 00 06 02 4F 00 00 00 00 00 00 00 00 00 00 
00 00 00 0B 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 0C 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 05 00 2E FC F4 00 00 00 00 00 00 00 00 
00 00 00 04 00 1E FC F4 00 00 00 00 00 00 00 00 
 
00 00 00 01 00 7C 06 84 02 4F 00 00 00 00 00 52 
00 00 00 08 00 74 BB 3C 00 00 00 00 00 00 00 00 	30BB44
00 00 00 09 00 04 00 00 00 00 00 00 00 00 00 00 
00 00 00 06 02 4F 00 00 00 00 00 00 00 00 00 00 
00 00 00 0B 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 0C 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 05 00 2E FC F4 00 00 00 00 00 00 00 00 
00 00 00 04 00 1E FC F4 00 00 00 00 00 00 00 00 
 
00 00 00 01 00 7C 06 84 02 4F 00 00 00 00 00 52 
00 00 00 08 00 7C 6A C0 00 00 00 00 00 00 00 00 	386AC8
00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 06 02 4F 00 00 00 00 00 00 00 00 00 00 
00 00 00 0B 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 0C 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 05 00 2E FC F4 00 00 00 00 00 00 00 00 
00 00 00 04 00 1E FC F4 00 00 00 00 00 00 00 00 
 
00 00 00 01 00 7C 06 84 02 4F 00 00 00 00 00 52 
00 00 00 08 00 78 50 5C 00 00 00 00 00 00 00 00 	345064
00 00 00 09 00 16 00 00 00 00 00 00 00 00 00 00 
00 00 00 06 02 4F 00 00 00 00 00 00 00 00 00 00 
00 00 00 0B 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 0C 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 05 00 2E FC F4 00 00 00 00 00 00 00 00 
00 00 00 04 00 1E FC F4 00 00 00 00 00 00 00 00 
 
00 00 00 01 00 7C 06 84 02 4F 00 00 00 00 00 52 
00 00 00 08 00 7C D3 04 00 00 00 00 00 00 00 00 	38D30C
00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 06 02 4F 00 00 00 00 00 00 00 00 00 00 
00 00 00 0B 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 0C 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 05 00 2E FC F4 00 00 00 00 00 00 00 00 
00 00 00 04 00 1E FC F4 00 00 00 00 00 00 00 00 
 
00 00 00 01 00 7C 06 84 02 4F 00 00 00 00 00 52 
00 00 00 08 00 7D 47 54 00 00 00 00 00 00 00 00 	39475C
00 00 00 09 00 76 00 00 00 00 00 00 00 00 00 00 
00 00 00 06 02 4F 00 00 00 00 00 00 00 00 00 00 
00 00 00 0B 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 0C 02 48 00 00 00 00 00 00 00 00 00 00 
00 00 00 05 00 2E FC F4 00 00 00 00 00 00 00 00 
00 00 00 04 00 1E FC F4 00 00 00 00 00 00 00 00 
 
00 00 00 02 00 14 F8 10 00 00 07 8B 00 00 00 00 
 
00 00 00 02 00 02 21 90 00 00 13 5A 00 00 00 00 
 
00 00 00 02 00 00 DD 40 00 00 02 C8 00 00 00 00 
 
00 00 00 02 00 15 36 34 00 00 03 EB 00 00 00 00 
 
00 00 00 05 00 13 00 00 00 00 00 00 00 00 00 00 	set r24
00 00 00 07 00 11 00 00 00 00 00 00 00 00 00 00 	set r23
00 00 00 0A 00 15 80 00 00 00 00 00 00 00 00 00 	set r22
00 00 00 13 00 17 80 00 00 00 00 00 00 00 00 00 	set r26
00 00 00 06 00 15 00 00 00 00 00 00 00 00 00 00 	set r25
00 00 00 14 00 02 00 00 00 00 00 00 00 00 00 00 	set r28	
00 00 00 03 40 04 FC 21 00 00 00 00 00 00 00 00		call
 

Just need to determine how the flash is verified as it is read/decompressed so we can modify it.
talkbot
Yes when I tried to overwrite one certificate the stream became larger than original so I removed 2 certificates and added the other one and padded with 00. The certificates are all in a single null terminated string so should still be parsed correctly. The resulting stream was smaller than original so I padded with 00 to original length. Then I just flashed back to the device and got the red/green flashing led.
talkbot
The streams that give ziprisc inflate length errors inflate fine, they just have length not multiple of 4 bytes and 2 byte padding is not consistent so may be garbage bytes.
SArcanine
join:2009-11-09
New York
to talkbot
said by talkbot:

Yes when I tried to overwrite one certificate the stream became larger than original so I removed 2 certificates and added the other one and padded with 00. The certificates are all in a single null terminated string so should still be parsed correctly. The resulting stream was smaller than original so I padded with 00 to original length. Then I just flashed back to the device and got the red/green flashing led.

Well, if it is inside a filesystem, then you just corrupted it. You need to replace just 1 larger certificate for that method to work. Not that I think that there is no checksum failure also occurring.
talkbot
join:2017-12-11
I don't think it is in a filesystem, just an embedded string.

There is an md5 hash at the beginning of the firmware section which covers the whole section (0x130000 bytes) and which is present in the update file. But when flashed to the device the unit info section of the flash falls within that range so would have to be ignored when verifying it. There is another 128bit value shortly following that md5 but I haven't been able to reproduce it.
talkbot
Firmware section header

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
E3 93 51 9F EC 17 0C 8D 23 E7 32 E1 BF E8 1E 53 	MD5 of whole section
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
31 2E 33 2E 30 20 28 42 75 69 6C 64 3A 20 32 38	version string = 1.3.0 (Build: 2886) 
38 36 29 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 01 00 0F 3C EE 00 2D 00 00 00 13 00 00 	section index, file offset, flash offset, length
E8 1A D7 18 40 58 22 D1 23 BA CE F2 DE 7B 6C C3 	possible MD5??
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 
SArcanine
join:2009-11-09
New York
to talkbot
said by talkbot:

I don't think it is in a filesystem, just an embedded string.

There is an md5 hash at the beginning of the firmware section which covers the whole section (0x130000 bytes) and which is present in the update file. But when flashed to the device the unit info section of the flash falls within that range so would have to be ignored when verifying it. There is another 128bit value shortly following that md5 but I haven't been able to reproduce it.

If it is an embedded string, you can change the length, but there likely are pointers to the string that follows it. Making it bigger than an existing string is a problem without understanding what references that area.
Stewart
join:2005-07-13

1 recommendation

to talkbot
said by talkbot:

There is another 128bit value shortly following that md5 but I haven't been able to reproduce it.

In the SPA firmware, there were two integrity checks in the firmware file. One was regular MD5. The other was MD5 of a byte stream. Each byte was the low 8 bits of the sum of the corresponding file byte and a variable that started at 0 and incremented by 13 (or maybe it was 0x13) for the next byte. I.e., 0 added to first byte, 13 added to second byte, 26 added to third byte, etc. Perhaps they are doing the same thing here, or something very similar.

If you are still having trouble when writing the flash directly, it may be useful to take smaller steps. First, write the flash with no mods at all to confirm that the process is working. Then, try modifying only one byte of a string that appears in the UI, chosen such that the deflated length does not change. Confirm that the modified string is displayed. If even this gives the flashing red/green, you can look for an integrity check. Is there a CRC associated with each deflate section, similar to a zip file?
talkbot
join:2017-12-11
to SArcanine
Yes I preserved the size of the string with zero padding
talkbot
Ok so I tried changing a single byte from the first MD5 in the header and the device booted. But when I changed a single byte from the second MD5 the christmas lights came back. So it seems the first MD5 is only checked during update (maybe?) but the second MD5 is checked at boot.
talkbot
to Stewart
Wow that sounds anoying. There is a CRC at the end of each deflate section.

I'm posting the disassembly of the third section (which has the MD5 constants) in case anyone wants to look

 003F0030	 r29 -= 0x00D0
 003F0034	 (UI32)r29.0x00B0 = r16
 003F0038	 r16 = r29 +0x0098
 003F003C	 (UI32)r29.0x00C8 = r30
 003F0040	 (UI32)r29.0x00C4 = r21
 003F0044	 (UI32)r29.0x00B8 = r18
 003F0048	 (UI32)r29.0x00B4 = r17
 003F004C	 r18 = r4
 003F0050	 r17 = r29 +0x0040
 003F0054	 r21 = r5
 003F0058	 r4 = r16
 003F005C	 r5 = r25 -0x10000
 003F0060	 r30 = r6
 003F0064	 r6 = 0x0014
 003F0068	 (UI32)r29.0x00C0 = r20
 003F006C	 (UI32)r29.0x00BC = r19
 003F0070	 (UI32)r29.0x00CC = r31
 003F0074	 call (r24 + 0x044B)*4
 003F0078	 r4 = r17
 003F007C	 call (r24 + 0x00A3)*4
 003F0080	 r4 = r16
 003F0084	 call (r24 + 0x043E)*4
 003F0088	 r6 = r2
 003F008C	 r5 = r16
 003F0090	 r4 = r17
 003F0094	 call (r24 + 0x00AE)*4
 003F0098	 r20 = r29 +0x0030
 003F009C	 r5 = r21
 003F00A0	 r4 = r17
 003F00A4	 r6 = 0x0010
 003F00A8	 call (r24 + 0x00AE)*4
 003F00AC	 r21 += 0x0020
 003F00B0	 r4 = r17
 003F00B4	 r5 = r20
 003F00B8	 r6 = 0x0010
 003F00BC	 (UI32)r29.0x0030 = 0
 003F00C0	 (UI32)r29.0x0034 = 0
 003F00C4	 (UI32)r29.0x0038 = 0
 003F00C8	 (UI32)r29.0x003C = 0
 003F00CC	 r16 = r21 + r18
 003F00D0	 call (r24 + 0x00AE)*4
 003F00D4	 r19 = r29 +0x0010
 003F00D8	 r6 = r18 -0x0020
 003F00DC	 r5 = r21
 003F00E0	 r4 = r17
 003F00E4	 r21 = r16 -0x0020
 003F00E8	 call (r24 + 0x00AE)*4
 003F00EC	 r30 -= 0x0020
 003F00F0	 r5 = r21
 003F00F4	 r4 = r19
 003F00F8	 r6 = 0x0010
 003F00FC	 call (r24 + 0x044B)*4
 003F0100	 r18 = r30 - r18
 003F0104	 r5 = r20
 003F0108	 r4 = r17
 003F010C	 r6 = 0x0010
 003F0110	 call (r24 + 0x00AE)*4
 003F0114	 r21 = r16 -0x0010
 003F0118	 r30 = r18 +0x0010
 003F011C	 r16 = r29 +0x0020
 003F0120	 r6 = r30
 003F0124	 r4 = r17
 003F0128	 r5 = r21
 003F012C	 call (r24 + 0x00AE)*4
 003F0130	 r5 = r17
 003F0134	 r4 = r16
 003F0138	 call (r24 + 0x00E4)*4
 003F013C	 r4 = r19
 003F0140	 r5 = r16
 003F0144	 r6 = 0x0010
 003F0148	 call (r24 + 0x0478)*4
 003F014C	 r3 = r2
 003F0150	 r2 = 0x0000
 003F0154	 if (r3==0) goto $003F0180
 003F0158	 r31 = (UI32)r29.0x00CC
 003F015C	 r30 = (UI32)r29.0x00C8
 003F0160	 r21 = (UI32)r29.0x00C4
 003F0164	 r20 = (UI32)r29.0x00C0
 003F0168	 r19 = (UI32)r29.0x00BC
 003F016C	 r18 = (UI32)r29.0x00B8
 003F0170	 r17 = (UI32)r29.0x00B4
 003F0174	 r16 = (UI32)r29.0x00B0
 003F0178	 r29 += 0x00D0
 003F017C	 return
 003F0180	 r2 = 0x0001
 003F0184	 call (r24 + 0x004A)*4
 003F0188	 r2 = (UI32)-0xFFEC[r25]
 003F018C	 r29 -= 0x0118
 003F0190	 r2 -= r4
 003F0194	 (UI32)r29.0x0114 = r31
 003F0198	 (UI32)r29.0x0110 = r16
 003F019C	 r4 = (UI32)-0x0004[r2]
 003F01A0	 r3 = (UI32)-0xFFE8[r25]
 003F01A4	 r3 -= r4
 003F01A8	 r4 = (UI32)-0xFFE4[r25]
 003F01AC	 r5 = r2 - r3
 003F01B0	 r3 += r4
 003F01B4	 r4 = (UI32)-0xFFE0[r25]
 003F01B8	 r2 = 0x0000
 003F01BC	 if u(r4<r3) goto $003F0204
 003F01C0	 r7 = (UI32)*r5
 003F01C4	 r3 = (UI32)-0xFFDC[r25]
 003F01C8	 r16 = r5 - r7
 003F01CC	 r4 = r29 +0x0010
 003F01D0	 r6 = 0x0100
 003F01D4	 r5 = r16
 003F01D8	 if u(r3<r7) goto $003F0204
 003F01DC	 call (r24 + 0x044B)*4
 003F01E0	 r6 = (UI32)r29.0x00BC
 003F01E4	 r2 = (UI32)-0xFFD8[r25]
 003F01E8	 r5 = r16
 003F01EC	 r6 += r2
 003F01F0	 r4 = 0x00B0
 003F01F4	 call (r24 + 0x0000)*4
 003F01F8	 r3 = r2
 003F01FC	 if (r3==0) goto $003F0204
 003F0200	 r2 = 0x0001
 003F0204	 r31 = (UI32)r29.0x0114
 003F0208	 r16 = (UI32)r29.0x0110
 003F020C	 r29 += 0x0118
 003F0210	 return
 003F0214	 r29 -= 0x0020
 003F0218	 (UI32)r29.0x0014 = r17
 003F021C	 (UI32)r29.0x0018 = r31
 003F0220	 (UI32)r29.0x0010 = r16
 003F0224	 r17 = (UI32)-0xFFD4[r25]
 003F0228	 r27 = (UI32)-0xFFD0[r25]
 003F022C	 r22 = 0x0080
 003F0230	 r22 = r22 <<16
 003F0234	 r26 = 0x1D00
 003F0238	 r26 = r26 <<16
 003F023C	 r2 = r26 - r17
 003F0240	 r4 = (UI32)-0x0004[r2]
 003F0244	 r3 = (UI32)r27.0x3040
 003F0248	 r2 = r22 - r4
 003F024C	 r16 = r2 + r17
 003F0250	 r4 = r16
 003F0254	 call (r24 + 0x0056)*4
 003F0258	 if (r2==0) goto $003F0260
 003F025C	 r17 = r16
 003F0260	 r2 = r26 - r17
 003F0264	 r4 = (UI32)-0x0004[r2]
 003F0268	 r3 = r2
 003F026C	 r6 = r22 - r4
 003F0270	 r5 = 0x0000
 003F0274	 r3 -= r6
 003F0278	 if s(r5>=r6) goto $003F0294
 003F027C	 r2 = (UI32)*r3
 003F0280	 r5 += 0x0004
 003F0284	 (UI32)*r4 = r2
 003F0288	 r3 += 0x0004
 003F028C	 r4 += 0x0004
 003F0290	 if s(r5<r6) goto $003F027C
 003F0294	 r22 = 0x0080
 003F0298	 r22 = r22 <<16
 003F029C	 r22 = (signed)r22 >>2
 003F02A0	 r22 -= 0x0004
 003F02A4	 call (r22 + 0x0000)*4
 003F02A8	 r31 = (UI32)r29.0x0018
 003F02AC	 r17 = (UI32)r29.0x0014
 003F02B0	 r16 = (UI32)r29.0x0010
 003F02B4	 r29 += 0x0020
 003F02B8	 return
 003F02BC	 r2 = (UI32)-0xFF8C[r25]
 003F02C0	 r3 = (UI32)-0xFF88[r25]
 003F02C4	 (UI32)r4.0x000C = r2
 003F02C8	 (UI32)*r4 = r3
 003F02CC	 r2 = (UI32)-0xFF84[r25]
 003F02D0	 r3 = (UI32)-0xFF80[r25]
 003F02D4	 (UI32)r4.0x0004 = r2
 003F02D8	 (UI32)r4.0x0008 = r3
 003F02DC	 (UI32)r4.0x0014 = 0
 003F02E0	 (UI32)r4.0x0010 = 0
 003F02E4	 return
 003F02E8	 r29 -= 0x0028
 003F02EC	 (UI32)r29.0x001C = r19
 003F02F0	 (UI32)r29.0x0018 = r18
 003F02F4	 (UI32)r29.0x0014 = r17
 003F02F8	 (UI32)r29.0x0020 = r31
 003F02FC	 r17 = r4
 003F0300	 (UI32)r29.0x0010 = r16
 003F0304	 r2 = (UI32)r17.0x0010
 003F0308	 r18 = r6
 003F030C	 r4 = r18 <<3
 003F0310	 r3 = r2 + r4
 003F0314	 r2 = r2 >>3
 003F0318	 r6 = r2 & 0x003F
 003F031C	 (UI32)r17.0x0010 = r3
 003F0320	 r19 = r5
 003F0324	 if u(r3>=r4) goto $003F0334
 003F0328	 r2 = (UI32)r17.0x0014
 003F032C	 r2++
 003F0330	 (UI32)r17.0x0014 = r2
 003F0334	 r2 = (UI32)r17.0x0014
 003F0338	 r3 = r18 >>29
 003F033C	 r4 = 0x0040
 003F0340	 r2 += r3
 003F0344	 r16 = r4 - r6
 003F0348	 (UI32)r17.0x0014 = r2
 003F034C	 if u(r18<r16) goto $003F03B8
 003F0350	 r4 = r17 + r6
 003F0354	 r4 += 0x0018
 003F0358	 r6 = r16
 003F035C	 call (r24 + 0x042D)*4
 003F0360	 r5 = r17 +0x0018
 003F0364	 r4 = r17
 003F0368	 call (r24 + 0x00D2)*4
 003F036C	 r5 = r19 + r16
 003F0370	 r4 = r17
 003F0374	 r16 += 0x0040
 003F0378	 call (r24 + 0x010B)*4
 003F037C	 r2 = r16 +0x003F
 003F0380	 if u(r2<r18) goto $003F036C
 003F0384	 r6 = 0x0000
 003F0388	 r4 = r17 + r6
 003F038C	 r5 = r19 + r16
 003F0390	 r6 = r18 - r16
 003F0394	 r4 += 0x0018
 003F0398	 call (r24 + 0x042D)*4
 003F039C	 r31 = (UI32)r29.0x0020
 003F03A0	 r19 = (UI32)r29.0x001C
 003F03A4	 r18 = (UI32)r29.0x0018
 003F03A8	 r17 = (UI32)r29.0x0014
 003F03AC	 r16 = (UI32)r29.0x0010
 003F03B0	 r29 += 0x0028
 003F03B4	 return
 003F03B8	 r16 = 0x0000
 003F03BC	 call (r24 + 0x00D6)*4
 003F03C0	 r29 -= 0x0028
 003F03C4	 (UI32)r29.0x0018 = r16
 003F03C8	 r16 = r5
 003F03CC	 (UI32)r29.0x001C = r17
 003F03D0	 r6 = 0x0008
 003F03D4	 r5 = r16 +0x0010
 003F03D8	 r17 = r4
 003F03DC	 r4 = r29 +0x0010
 003F03E0	 (UI32)r29.0x0020 = r31
 003F03E4	 call (r24 + 0x0406)*4
 003F03E8	 r2 = (UI32)r16.0x0010
 003F03EC	 r3 = 0x0038
 003F03F0	 r2 = r2 >>3
 003F03F4	 r4 = r2 & 0x003F
 003F03F8	 r2 = 0x0037
 003F03FC	 r6 = r3 - r4
 003F0400	 if u(r2>=r4) goto $003F040C
 003F0404	 r2 = 0x0078
 003F0408	 r6 = r2 - r4
 003F040C	 r4 = r16
 003F0410	 r5 = r25 -0xFFCC
 003F0414	 call (r24 + 0x00AE)*4
 003F0418	 r5 = r29 +0x0010
 003F041C	 r4 = r16
 003F0420	 r6 = 0x0008
 003F0424	 call (r24 + 0x00AE)*4
 003F0428	 r4 = r17
 003F042C	 r5 = r16
 003F0430	 r6 = 0x0010
 003F0434	 call (r24 + 0x0406)*4
 003F0438	 r4 = r16
 003F043C	 r5 = 0x0000
 003F0440	 r6 = 0x0058
 003F0444	 call (r24 + 0x0437)*4
 003F0448	 r31 = (UI32)r29.0x0020
 003F044C	 r17 = (UI32)r29.0x001C
 003F0450	 r16 = (UI32)r29.0x0018
 003F0454	 r29 += 0x0028
 003F0458	 return
 003F045C	 r29 -= 0x0070
 003F0460	 (UI32)r29.0x006C = r31
 003F0464	 (UI32)r29.0x0058 = r18
 003F0468	 (UI32)r29.0x0054 = r17
 003F046C	 (UI32)r29.0x0050 = r16
 003F0470	 (UI32)r29.0x0068 = r30
 003F0474	 r16 = r4
 003F0478	 (UI32)r29.0x0064 = r21
 003F047C	 (UI32)r29.0x0060 = r20
 003F0480	 (UI32)r29.0x005C = r19
 003F0484	 r21 = (UI32)r16.0x0004
 003F0488	 r20 = (UI32)r16.0x0008
 003F048C	 r19 = (UI32)r16.0x000C
 003F0490	 r4 = r29 +0x0010
 003F0494	 r6 = 0x0040
 003F0498	 r30 = (UI32)*r16
 003F049C	 call (r24 + 0x0417)*4
 003F04A0	 r15 = (UI32)r29.0x0010
 003F04A4	 r3 =(~r21) & r19
 003F04A8	 r2 = r21 & r20
 003F04AC	 r2 |= r3
 003F04B0	 r2 += r15
 003F04B4	 r3 = (UI32)-0xFF7C[r25]
 003F04B8	 r2 += r30
 003F04BC	 r30 = r2 + r3
 003F04C0	 r4 = r30 >>25
 003F04C4	 r2 = r30 <<7
 003F04C8	 r30 = r2 | r4
 003F04CC	 r30 += r21
 003F04D0	 r3 =(~r30) & r20
 003F04D4	 r2 = r30 & r21
 003F04D8	 r2 |= r3
 003F04DC	 r3 = (UI32)r29.0x0014
 003F04E0	 r18 = (UI32)r29.0x001C
 003F04E4	 r2 += r3
 003F04E8	 r3 = (UI32)-0xFF78[r25]
 003F04EC	 r2 += r19
 003F04F0	 r19 = r2 + r3
 003F04F4	 r4 = r19 >>20
 003F04F8	 r2 = r19 <<12
 003F04FC	 r19 = r2 | r4
 003F0500	 r19 += r30
 003F0504	 r3 =(~r19) & r21
 003F0508	 r2 = r19 & r30
 003F050C	 r2 |= r3
 003F0510	 r3 = (UI32)r29.0x0018
 003F0514	 r13 = (UI32)r29.0x0024
 003F0518	 r2 += r3
 003F051C	 r3 = (UI32)-0xFF74[r25]
 003F0520	 r2 += r20
 003F0524	 r20 = r2 + r3
 003F0528	 r4 = r20 >>15
 003F052C	 r2 = r20 <<17
 003F0530	 r20 = r2 | r4
 003F0534	 r20 += r19
 003F0538	 r3 =(~r20) & r30
 003F053C	 r2 = r20 & r19
 003F0540	 r2 |= r3
 003F0544	 r2 += r18
 003F0548	 r3 = (UI32)-0xFF70[r25]
 003F054C	 r2 += r21
 003F0550	 r21 = r2 + r3
 003F0554	 r4 = r21 >>10
 003F0558	 r2 = r21 <<22
 003F055C	 r21 = r2 | r4
 003F0560	 r21 += r20
 003F0564	 r3 =(~r21) & r19
 003F0568	 r2 = r21 & r20
 003F056C	 r2 |= r3
 003F0570	 r3 = (UI32)r29.0x0020
 003F0574	 r10 = (UI32)r29.0x002C
 003F0578	 r2 += r3
 003F057C	 r3 = (UI32)-0xFF6C[r25]
 003F0580	 r2 += r30
 003F0584	 r30 = r2 + r3
 003F0588	 r4 = r30 >>25
 003F058C	 r2 = r30 <<7
 003F0590	 r30 = r2 | r4
 003F0594	 r30 += r21
 003F0598	 r3 =(~r30) & r20
 003F059C	 r2 = r30 & r21
 003F05A0	 r2 |= r3
 003F05A4	 r2 += r13
 003F05A8	 r3 = (UI32)-0xFF68[r25]
 003F05AC	 r2 += r19
 003F05B0	 r19 = r2 + r3
 003F05B4	 r4 = r19 >>20
 003F05B8	 r2 = r19 <<12
 003F05BC	 r19 = r2 | r4
 003F05C0	 r19 += r30
 003F05C4	 r3 =(~r19) & r21
 003F05C8	 r2 = r19 & r30
 003F05CC	 r2 |= r3
 003F05D0	 r3 = (UI32)r29.0x0028
 003F05D4	 r14 = (UI32)r29.0x0030
 003F05D8	 r2 += r3
 003F05DC	 r3 = (UI32)-0xFF64[r25]
 003F05E0	 r2 += r20
 003F05E4	 r20 = r2 + r3
 003F05E8	 r4 = r20 >>15
 003F05EC	 r2 = r20 <<17
 003F05F0	 r20 = r2 | r4
 003F05F4	 r20 += r19
 003F05F8	 r3 =(~r20) & r30
 003F05FC	 r2 = r20 & r19
 003F0600	 r2 |= r3
 003F0604	 r2 += r10
 003F0608	 r3 = (UI32)-0xFF60[r25]
 003F060C	 r2 += r21
 003F0610	 r21 = r2 + r3
 003F0614	 r4 = r21 >>10
 003F0618	 r2 = r21 <<22
 003F061C	 r21 = r2 | r4
 003F0620	 r21 += r20
 003F0624	 r3 =(~r21) & r19
 003F0628	 r2 = r21 & r20
 003F062C	 r2 |= r3
 003F0630	 r2 += r14
 003F0634	 r3 = (UI32)-0xFF5C[r25]
 003F0638	 r2 += r30
 003F063C	 r30 = r2 + r3
 003F0640	 r4 = r30 >>25
 003F0644	 r2 = r30 <<7
 003F0648	 r30 = r2 | r4
 003F064C	 r30 += r21
 003F0650	 r3 =(~r30) & r20
 003F0654	 r2 = r30 & r21
 003F0658	 r2 |= r3
 003F065C	 r3 = (UI32)r29.0x0034
 003F0660	 r11 = (UI32)r29.0x0038
 003F0664	 r2 += r3
 003F0668	 r3 = (UI32)-0xFF58[r25]
 003F066C	 r2 += r19
 003F0670	 r19 = r2 + r3
 003F0674	 r4 = r19 >>20
 003F0678	 r2 = r19 <<12
 003F067C	 r19 = r2 | r4
 003F0680	 r19 += r30
 003F0684	 r3 =(~r19) & r21
 003F0688	 r2 = r19 & r30
 003F068C	 r2 |= r3
 003F0690	 r2 += r11
 003F0694	 r2 += r20
 003F0698	 r20 = r2 -0xA44F
 003F069C	 r3 = r20 >>15
 003F06A0	 r2 = r20 <<17
 003F06A4	 r20 = r2 | r3
 003F06A8	 r20 += r19
 003F06AC	 r17 = (UI32)r29.0x003C
 003F06B0	 r3 =(~r20) & r30
 003F06B4	 r2 = r20 & r19
 003F06B8	 r2 |= r3
 003F06BC	 r2 += r17
 003F06C0	 r3 = (UI32)-0xFF54[r25]
 003F06C4	 r2 += r21
 003F06C8	 r21 = r2 + r3
 003F06CC	 r4 = r21 >>10
 003F06D0	 r2 = r21 <<22
 003F06D4	 r21 = r2 | r4
 003F06D8	 r21 += r20
 003F06DC	 r8 = (UI32)r29.0x0040
 003F06E0	 r3 =(~r21) & r19
 003F06E4	 r2 = r21 & r20
 003F06E8	 r2 |= r3
 003F06EC	 r2 += r8
 003F06F0	 r3 = (UI32)-0xFF50[r25]
 003F06F4	 r2 += r30
 003F06F8	 r30 = r2 + r3
 003F06FC	 r4 = r30 >>25
 003F0700	 r2 = r30 <<7
 003F0704	 r30 = r2 | r4
 003F0708	 r30 += r21
 003F070C	 r12 = (UI32)r29.0x0044
 003F0710	 r3 =(~r30) & r20
 003F0714	 r2 = r30 & r21
 003F0718	 r2 |= r3
 003F071C	 r2 += r12
 003F0720	 r3 = (UI32)-0xFF4C[r25]
 003F0724	 r2 += r19
 003F0728	 r19 = r2 + r3
 003F072C	 r4 = r19 >>20
 003F0730	 r2 = r19 <<12
 003F0734	 r19 = r2 | r4
 003F0738	 r19 += r30
 003F073C	 r6 = ~r19
 003F0740	 r7 = (UI32)r29.0x0048
 003F0744	 r3 = r6 & r21
 003F0748	 r2 = r19 & r30
 003F074C	 r2 |= r3
 003F0750	 r2 += r7
 003F0754	 r3 = (UI32)-0xFF48[r25]
 003F0758	 r2 += r20
 003F075C	 r20 = r2 + r3
 003F0760	 r4 = r20 >>15
 003F0764	 r2 = r20 <<17
 003F0768	 r20 = r2 | r4
 003F076C	 r20 += r19
 003F0770	 r5 = ~r20
 003F0774	 r9 = (UI32)r29.0x004C
 003F0778	 r3 = r5 & r30
 003F077C	 r2 = r20 & r19
 003F0780	 r2 |= r3
 003F0784	 r2 += r9
 003F0788	 r3 = (UI32)-0xFF44[r25]
 003F078C	 r2 += r21
 003F0790	 r21 = r2 + r3
 003F0794	 r4 = r21 >>10
 003F0798	 r2 = r21 <<22
 003F079C	 r21 = r2 | r4
 003F07A0	 r21 += r20
 003F07A4	 r3 = (UI32)r29.0x0014
 003F07A8	 r6 = r20 & r6
 003F07AC	 r2 = r21 & r19
 003F07B0	 r2 |= r6
 003F07B4	 r2 += r3
 003F07B8	 r3 = (UI32)-0xFF40[r25]
 003F07BC	 r2 += r30
 003F07C0	 r30 = r2 + r3
 003F07C4	 r4 = r30 >>27
 003F07C8	 r2 = r30 <<5
 003F07CC	 r30 = r2 | r4
 003F07D0	 r30 += r21
 003F07D4	 r3 = (UI32)r29.0x0028
 003F07D8	 r5 = r21 & r5
 003F07DC	 r2 = r30 & r20
 003F07E0	 r2 |= r5
 003F07E4	 r2 += r3
 003F07E8	 r3 = (UI32)-0xFF3C[r25]
 003F07EC	 r2 += r19
 003F07F0	 r19 = r2 + r3
 003F07F4	 r4 = r19 >>23
 003F07F8	 r2 = r19 <<9
 003F07FC	 r19 = r2 | r4
 003F0800	 r19 += r30
 003F0804	 r3 =(~r21) & r30
 003F0808	 r2 = r19 & r21
 003F080C	 r2 |= r3
 003F0810	 r2 += r17
 003F0814	 r3 = (UI32)-0xFF38[r25]
 003F0818	 r2 += r20
 003F081C	 r20 = r2 + r3
 003F0820	 r4 = r20 >>18
 003F0824	 r2 = r20 <<14
 003F0828	 r20 = r2 | r4
 003F082C	 r20 += r19
 003F0830	 r3 =(~r30) & r19
 003F0834	 r2 = r20 & r30
 003F0838	 r2 |= r3
 003F083C	 r2 += r15
 003F0840	 r3 = (UI32)-0xFF34[r25]
 003F0844	 r2 += r21
 003F0848	 r21 = r2 + r3
 003F084C	 r4 = r21 >>12
 003F0850	 r2 = r21 <<20
 003F0854	 r21 = r2 | r4
 003F0858	 r21 += r20
 003F085C	 r3 =(~r19) & r20
 003F0860	 r2 = r21 & r19
 003F0864	 r2 |= r3
 003F0868	 r2 += r13
 003F086C	 r3 = (UI32)-0xFF30[r25]
 003F0870	 r2 += r30
 003F0874	 r30 = r2 + r3
 003F0878	 r4 = r30 >>27
 003F087C	 r2 = r30 <<5
 003F0880	 r30 = r2 | r4
 003F0884	 r30 += r21
 003F0888	 r3 =(~r20) & r21
 003F088C	 r2 = r30 & r20
 003F0890	 r2 |= r3
 003F0894	 r2 += r11
 003F0898	 r3 = (UI32)-0xFF2C[r25]
 003F089C	 r2 += r19
 003F08A0	 r19 = r2 + r3
 003F08A4	 r4 = r19 >>23
 003F08A8	 r2 = r19 <<9
 003F08AC	 r19 = r2 | r4
 003F08B0	 r19 += r30
 003F08B4	 r3 =(~r21) & r30
 003F08B8	 r2 = r19 & r21
 003F08BC	 r2 |= r3
 003F08C0	 r2 += r9
 003F08C4	 r3 = (UI32)-0xFF28[r25]
 003F08C8	 r2 += r20
 003F08CC	 r20 = r2 + r3
 003F08D0	 r4 = r20 >>18
 003F08D4	 r2 = r20 <<14
 003F08D8	 r20 = r2 | r4
 003F08DC	 r20 += r19
 003F08E0	 r3 =(~r30) & r19
 003F08E4	 r2 = r20 & r30
 003F08E8	 r2 |= r3
 003F08EC	 r3 = (UI32)r29.0x0020
 003F08F0	 r5 = (UI32)r16.0x0008
 003F08F4	 r2 += r3
 003F08F8	 r3 = (UI32)-0xFF24[r25]
 003F08FC	 r2 += r21
 003F0900	 r21 = r2 + r3
 003F0904	 r4 = r21 >>12
 003F0908	 r2 = r21 <<20
 003F090C	 r21 = r2 | r4
 003F0910	 r21 += r20
 003F0914	 r3 =(~r19) & r20
 003F0918	 r2 = r21 & r19
 003F091C	 r2 |= r3
 003F0920	 r3 = (UI32)r29.0x0034
 003F0924	 r6 = 0x0040
 003F0928	 r2 += r3
 003F092C	 r3 = (UI32)-0xFF20[r25]
 003F0930	 r2 += r30
 003F0934	 r30 = r2 + r3
 003F0938	 r4 = r30 >>27
 003F093C	 r2 = r30 <<5
 003F0940	 r30 = r2 | r4
 003F0944	 r30 += r21
 003F0948	 r3 =(~r20) & r21
 003F094C	 r2 = r30 & r20
 003F0950	 r2 |= r3
 003F0954	 r2 += r7
 003F0958	 r3 = (UI32)-0xFF1C[r25]
 003F095C	 r2 += r19
 003F0960	 r19 = r2 + r3
 003F0964	 r4 = r19 >>23
 003F0968	 r2 = r19 <<9
 003F096C	 r19 = r2 | r4
 003F0970	 r19 += r30
 003F0974	 r3 =(~r21) & r30
 003F0978	 r2 = r19 & r21
 003F097C	 r2 |= r3
 003F0980	 r2 += r18
 003F0984	 r3 = (UI32)-0xFF18[r25]
 003F0988	 r2 += r20
 003F098C	 r20 = r2 + r3
 003F0990	 r4 = r20 >>18
 003F0994	 r2 = r20 <<14
 003F0998	 r20 = r2 | r4
 003F099C	 r20 += r19
 003F09A0	 r3 =(~r30) & r19
 003F09A4	 r2 = r20 & r30
 003F09A8	 r2 |= r3
 003F09AC	 r2 += r14
 003F09B0	 r3 = (UI32)-0xFF14[r25]
 003F09B4	 r2 += r21
 003F09B8	 r21 = r2 + r3
 003F09BC	 r4 = r21 >>12
 003F09C0	 r2 = r21 <<20
 003F09C4	 r21 = r2 | r4
 003F09C8	 r21 += r20
 003F09CC	 r3 =(~r19) & r20
 003F09D0	 r2 = r21 & r19
 003F09D4	 r2 |= r3
 003F09D8	 r2 += r12
 003F09DC	 r3 = (UI32)-0xFF10[r25]
 003F09E0	 r2 += r30
 003F09E4	 r30 = r2 + r3
 003F09E8	 r4 = r30 >>27
 003F09EC	 r2 = r30 <<5
 003F09F0	 r30 = r2 | r4
 003F09F4	 r30 += r21
 003F09F8	 r3 =(~r20) & r21
 003F09FC	 r2 = r30 & r20
 003F0A00	 r2 |= r3
 003F0A04	 r3 = (UI32)r29.0x0018
 003F0A08	 r2 += r3
 003F0A0C	 r3 = (UI32)-0xFF0C[r25]
 003F0A10	 r2 += r19
 003F0A14	 r19 = r2 + r3
 003F0A18	 r4 = r19 >>23
 003F0A1C	 r2 = r19 <<9
 003F0A20	 r19 = r2 | r4
 003F0A24	 r19 += r30
 003F0A28	 r3 =(~r21) & r30
 003F0A2C	 r2 = r19 & r21
 003F0A30	 r2 |= r3
 003F0A34	 r2 += r10
 003F0A38	 r3 = (UI32)-0xFF08[r25]
 003F0A3C	 r2 += r20
 003F0A40	 r20 = r2 + r3
 003F0A44	 r4 = r20 >>18
 003F0A48	 r2 = r20 <<14
 003F0A4C	 r20 = r2 | r4
 003F0A50	 r20 += r19
 003F0A54	 r3 =(~r30) & r19
 003F0A58	 r2 = r20 & r30
 003F0A5C	 r2 |= r3
 003F0A60	 r2 += r8
 003F0A64	 r3 = (UI32)-0xFF04[r25]
 003F0A68	 r2 += r21
 003F0A6C	 r21 = r2 + r3
 003F0A70	 r4 = r21 >>12
 003F0A74	 r2 = r21 <<20
 003F0A78	 r21 = r2 | r4
 003F0A7C	 r21 += r20
 003F0A80	 r2 = r21 ^ r20
 003F0A84	 r2 ^= r19
 003F0A88	 r2 += r13
 003F0A8C	 r3 = (UI32)-0xFF00[r25]
 003F0A90	 r2 += r30
 003F0A94	 r30 = r2 + r3
 003F0A98	 r4 = r30 >>28
 003F0A9C	 r2 = r30 <<4
 003F0AA0	 r30 = r2 | r4
 003F0AA4	 r30 += r21
 003F0AA8	 r2 = r30 ^ r21
 003F0AAC	 r2 ^= r20
 003F0AB0	 r2 += r14
 003F0AB4	 r3 = (UI32)-0xFEFC[r25]
 003F0AB8	 r2 += r19
 003F0ABC	 r19 = r2 + r3
 003F0AC0	 r4 = r19 >>21
 003F0AC4	 r2 = r19 <<11
 003F0AC8	 r19 = r2 | r4
 003F0ACC	 r19 += r30
 003F0AD0	 r2 = r19 ^ r30
 003F0AD4	 r2 ^= r21
 003F0AD8	 r2 += r17
 003F0ADC	 r3 = (UI32)-0xFEF8[r25]
 003F0AE0	 r2 += r20
 003F0AE4	 r20 = r2 + r3
 003F0AE8	 r4 = r20 >>16
 003F0AEC	 r2 = r20 <<16
 003F0AF0	 r20 = r2 | r4
 003F0AF4	 r20 += r19
 003F0AF8	 r2 = r20 ^ r19
 003F0AFC	 r2 ^= r30
 003F0B00	 r2 += r7
 003F0B04	 r3 = (UI32)-0xFEF4[r25]
 003F0B08	 r2 += r21
 003F0B0C	 r21 = r2 + r3
 003F0B10	 r4 = r21 >>9
 003F0B14	 r2 = r21 <<23
 003F0B18	 r21 = r2 | r4
 003F0B1C	 r21 += r20
 003F0B20	 r3 = (UI32)r29.0x0014
 003F0B24	 r2 = r21 ^ r20
 003F0B28	 r2 ^= r19
 003F0B2C	 r2 += r3
 003F0B30	 r3 = (UI32)-0xFEF0[r25]
 003F0B34	 r2 += r30
 003F0B38	 r30 = r2 + r3
 003F0B3C	 r4 = r30 >>28
 003F0B40	 r2 = r30 <<4
 003F0B44	 r30 = r2 | r4
 003F0B48	 r30 += r21
 003F0B4C	 r3 = (UI32)r29.0x0020
 003F0B50	 r2 = r30 ^ r21
 003F0B54	 r2 ^= r20
 003F0B58	 r2 += r3
 003F0B5C	 r3 = (UI32)-0xFEEC[r25]
 003F0B60	 r2 += r19
 003F0B64	 r19 = r2 + r3
 003F0B68	 r4 = r19 >>21
 003F0B6C	 r2 = r19 <<11
 003F0B70	 r19 = r2 | r4
 003F0B74	 r19 += r30
 003F0B78	 r2 = r19 ^ r30
 003F0B7C	 r2 ^= r21
 003F0B80	 r2 += r10
 003F0B84	 r3 = (UI32)-0xFEE8[r25]
 003F0B88	 r2 += r20
 003F0B8C	 r20 = r2 + r3
 003F0B90	 r4 = r20 >>16
 003F0B94	 r2 = r20 <<16
 003F0B98	 r20 = r2 | r4
 003F0B9C	 r20 += r19
 003F0BA0	 r2 = r20 ^ r19
 003F0BA4	 r2 ^= r30
 003F0BA8	 r2 += r11
 003F0BAC	 r3 = (UI32)-0xFEE4[r25]
 003F0BB0	 r2 += r21
 003F0BB4	 r21 = r2 + r3
 003F0BB8	 r4 = r21 >>9
 003F0BBC	 r2 = r21 <<23
 003F0BC0	 r21 = r2 | r4
 003F0BC4	 r21 += r20
 003F0BC8	 r2 = r21 ^ r20
 003F0BCC	 r2 ^= r19
 003F0BD0	 r2 += r12
 003F0BD4	 r3 = (UI32)-0xFEE0[r25]
 003F0BD8	 r2 += r30
 003F0BDC	 r30 = r2 + r3
 003F0BE0	 r4 = r30 >>28
 003F0BE4	 r2 = r30 <<4
 003F0BE8	 r30 = r2 | r4
 003F0BEC	 r30 += r21
 003F0BF0	 r2 = r30 ^ r21
 003F0BF4	 r2 ^= r20
 003F0BF8	 r2 += r15
 003F0BFC	 r3 = (UI32)-0xFEDC[r25]
 003F0C00	 r2 += r19
 003F0C04	 r19 = r2 + r3
 003F0C08	 r4 = r19 >>21
 003F0C0C	 r2 = r19 <<11
 003F0C10	 r19 = r2 | r4
 003F0C14	 r19 += r30
 003F0C18	 r2 = r19 ^ r30
 003F0C1C	 r2 ^= r21
 003F0C20	 r2 += r18
 003F0C24	 r3 = (UI32)-0xFED8[r25]
 003F0C28	 r2 += r20
 003F0C2C	 r20 = r2 + r3
 003F0C30	 r4 = r20 >>16
 003F0C34	 r2 = r20 <<16
 003F0C38	 r20 = r2 | r4
 003F0C3C	 r20 += r19
 003F0C40	 r3 = (UI32)r29.0x0028
 003F0C44	 r2 = r20 ^ r19
 003F0C48	 r2 ^= r30
 003F0C4C	 r2 += r3
 003F0C50	 r3 = (UI32)-0xFED4[r25]
 003F0C54	 r2 += r21
 003F0C58	 r21 = r2 + r3
 003F0C5C	 r4 = r21 >>9
 003F0C60	 r2 = r21 <<23
 003F0C64	 r21 = r2 | r4
 003F0C68	 r21 += r20
 003F0C6C	 r3 = (UI32)r29.0x0034
 003F0C70	 r2 = r21 ^ r20
 003F0C74	 r2 ^= r19
 003F0C78	 r2 += r3
 003F0C7C	 r3 = (UI32)-0xFED0[r25]
 003F0C80	 r2 += r30
 003F0C84	 r30 = r2 + r3
 003F0C88	 r4 = r30 >>28
 003F0C8C	 r2 = r30 <<4
 003F0C90	 r30 = r2 | r4
 003F0C94	 r30 += r21
 003F0C98	 r2 = r30 ^ r21
 003F0C9C	 r2 ^= r20
 003F0CA0	 r2 += r8
 003F0CA4	 r3 = (UI32)-0xFECC[r25]
 003F0CA8	 r2 += r19
 003F0CAC	 r19 = r2 + r3
 003F0CB0	 r4 = r19 >>21
 003F0CB4	 r2 = r19 <<11
 003F0CB8	 r19 = r2 | r4
 003F0CBC	 r19 += r30
 003F0CC0	 r2 = r19 ^ r30
 003F0CC4	 r2 ^= r21
 003F0CC8	 r2 += r9
 003F0CCC	 r3 = (UI32)-0xFEC8[r25]
 003F0CD0	 r2 += r20
 003F0CD4	 r20 = r2 + r3
 003F0CD8	 r4 = r20 >>16
 003F0CDC	 r2 = r20 <<16
 003F0CE0	 r20 = r2 | r4
 003F0CE4	 r20 += r19
 003F0CE8	 r3 = (UI32)r29.0x0018
 003F0CEC	 r2 = r20 ^ r19
 003F0CF0	 r2 ^= r30
 003F0CF4	 r2 += r3
 003F0CF8	 r3 = (UI32)-0xFEC4[r25]
 003F0CFC	 r2 += r21
 003F0D00	 r21 = r2 + r3
 003F0D04	 r4 = r21 >>9
 003F0D08	 r2 = r21 <<23
 003F0D0C	 r21 = r2 | r4
 003F0D10	 r21 += r20
 003F0D14	 r2 = ~r19
 003F0D18	 r2 = r21 | r2
 003F0D1C	 r2 = r20 ^ r2
 003F0D20	 r2 += r15
 003F0D24	 r3 = (UI32)-0xFEC0[r25]
 003F0D28	 r2 += r30
 003F0D2C	 r30 = r2 + r3
 003F0D30	 r4 = r30 >>26
 003F0D34	 r2 = r30 <<6
 003F0D38	 r30 = r2 | r4
 003F0D3C	 r30 += r21
 003F0D40	 r2 = ~r20
 003F0D44	 r2 = r30 | r2
 003F0D48	 r2 = r21 ^ r2
 003F0D4C	 r2 += r10
 003F0D50	 r3 = (UI32)-0xFEBC[r25]
 003F0D54	 r2 += r19
 003F0D58	 r19 = r2 + r3
 003F0D5C	 r4 = r19 >>22
 003F0D60	 r2 = r19 <<10
 003F0D64	 r19 = r2 | r4
 003F0D68	 r19 += r30
 003F0D6C	 r2 = ~r21
 003F0D70	 r2 = r19 | r2
 003F0D74	 r2 = r30 ^ r2
 003F0D78	 r2 += r7
 003F0D7C	 r3 = (UI32)-0xFEB8[r25]
 003F0D80	 r2 += r20
 003F0D84	 r20 = r2 + r3
 003F0D88	 r4 = r20 >>17
 003F0D8C	 r2 = r20 <<15
 003F0D90	 r20 = r2 | r4
 003F0D94	 r20 += r19
 003F0D98	 r2 = ~r30
 003F0D9C	 r2 = r20 | r2
 003F0DA0	 r2 = r19 ^ r2
 003F0DA4	 r2 += r13
 003F0DA8	 r3 = (UI32)-0xFEB4[r25]
 003F0DAC	 r2 += r21
 003F0DB0	 r21 = r2 + r3
 003F0DB4	 r4 = r21 >>11
 003F0DB8	 r2 = r21 <<21
 003F0DBC	 r21 = r2 | r4
 003F0DC0	 r21 += r20
 003F0DC4	 r2 = ~r19
 003F0DC8	 r2 = r21 | r2
 003F0DCC	 r2 = r20 ^ r2
 003F0DD0	 r2 += r8
 003F0DD4	 r3 = (UI32)-0xFEB0[r25]
 003F0DD8	 r2 += r30
 003F0DDC	 r30 = r2 + r3
 003F0DE0	 r4 = r30 >>26
 003F0DE4	 r2 = r30 <<6
 003F0DE8	 r30 = r2 | r4
 003F0DEC	 r30 += r21
 003F0DF0	 r2 = ~r20
 003F0DF4	 r2 = r30 | r2
 003F0DF8	 r2 = r21 ^ r2
 003F0DFC	 r2 += r18
 003F0E00	 r3 = (UI32)-0xFEAC[r25]
 003F0E04	 r2 += r19
 003F0E08	 r19 = r2 + r3
 003F0E0C	 r4 = r19 >>22
 003F0E10	 r2 = r19 <<10
 003F0E14	 r19 = r2 | r4
 003F0E18	 r19 += r30
 003F0E1C	 r2 = ~r21
 003F0E20	 r2 = r19 | r2
 003F0E24	 r2 = r30 ^ r2
 003F0E28	 r2 += r11
 003F0E2C	 r3 = (UI32)-0xFEA8[r25]
 003F0E30	 r2 += r20
 003F0E34	 r20 = r2 + r3
 003F0E38	 r4 = r20 >>17
 003F0E3C	 r2 = r20 <<15
 003F0E40	 r20 = r2 | r4
 003F0E44	 r20 += r19
 003F0E48	 r2 = ~r30
 003F0E4C	 r3 = (UI32)r29.0x0014
 003F0E50	 r2 = r20 | r2
 003F0E54	 r2 = r19 ^ r2
 003F0E58	 r2 += r3
 003F0E5C	 r3 = (UI32)-0xFEA4[r25]
 003F0E60	 r2 += r21
 003F0E64	 r21 = r2 + r3
 003F0E68	 r4 = r21 >>11
 003F0E6C	 r2 = r21 <<21
 003F0E70	 r21 = r2 | r4
 003F0E74	 r21 += r20
 003F0E78	 r2 = ~r19
 003F0E7C	 r2 = r21 | r2
 003F0E80	 r2 = r20 ^ r2
 003F0E84	 r2 += r14
 003F0E88	 r3 = (UI32)-0xFEA0[r25]
 003F0E8C	 r2 += r30
 003F0E90	 r30 = r2 + r3
 003F0E94	 r4 = r30 >>26
 003F0E98	 r2 = r30 <<6
 003F0E9C	 r30 = r2 | r4
 003F0EA0	 r30 += r21
 003F0EA4	 r2 = ~r20
 003F0EA8	 r2 = r30 | r2
 003F0EAC	 r2 = r21 ^ r2
 003F0EB0	 r2 += r9
 003F0EB4	 r3 = (UI32)-0xFE9C[r25]
 003F0EB8	 r2 += r19
 003F0EBC	 r19 = r2 + r3
 003F0EC0	 r4 = r19 >>22
 003F0EC4	 r2 = r19 <<10
 003F0EC8	 r19 = r2 | r4
 003F0ECC	 r19 += r30
 003F0ED0	 r2 = ~r21
 003F0ED4	 r3 = (UI32)r29.0x0028
 003F0ED8	 r2 = r19 | r2
 003F0EDC	 r2 = r30 ^ r2
 003F0EE0	 r2 += r3
 003F0EE4	 r3 = (UI32)-0xFE98[r25]
 003F0EE8	 r2 += r20
 003F0EEC	 r20 = r2 + r3
 003F0EF0	 r4 = r20 >>17
 003F0EF4	 r2 = r20 <<15
 003F0EF8	 r20 = r2 | r4
 003F0EFC	 r20 += r19
 003F0F00	 r2 = ~r30
 003F0F04	 r2 = r20 | r2
 003F0F08	 r2 = r19 ^ r2
 003F0F0C	 r2 += r12
 003F0F10	 r3 = (UI32)-0xFE94[r25]
 003F0F14	 r2 += r21
 003F0F18	 r21 = r2 + r3
 003F0F1C	 r4 = r21 >>11
 003F0F20	 r2 = r21 <<21
 003F0F24	 r21 = r2 | r4
 003F0F28	 r21 += r20
 003F0F2C	 r2 = ~r19
 003F0F30	 r3 = (UI32)r29.0x0020
 003F0F34	 r2 = r21 | r2
 003F0F38	 r2 = r20 ^ r2
 003F0F3C	 r2 += r3
 003F0F40	 r3 = (UI32)-0xFE90[r25]
 003F0F44	 r2 += r30
 003F0F48	 r30 = r2 + r3
 003F0F4C	 r4 = r30 >>26
 003F0F50	 r2 = r30 <<6
 003F0F54	 r30 = r2 | r4
 003F0F58	 r30 += r21
 003F0F5C	 r2 = ~r20
 003F0F60	 r2 = r30 | r2
 003F0F64	 r2 = r21 ^ r2
 003F0F68	 r2 += r17
 003F0F6C	 r3 = (UI32)-0xFE8C[r25]
 003F0F70	 r2 += r19
 003F0F74	 r19 = r2 + r3
 003F0F78	 r4 = r19 >>22
 003F0F7C	 r2 = r19 <<10
 003F0F80	 r19 = r2 | r4
 003F0F84	 r19 += r30
 003F0F88	 r2 = ~r21
 003F0F8C	 r3 = (UI32)r29.0x0018
 003F0F90	 r2 = r19 | r2
 003F0F94	 r2 = r30 ^ r2
 003F0F98	 r2 += r3
 003F0F9C	 r3 = (UI32)-0xFE88[r25]
 003F0FA0	 r2 += r20
 003F0FA4	 r20 = r2 + r3
 003F0FA8	 r4 = r20 >>17
 003F0FAC	 r2 = r20 <<15
 003F0FB0	 r20 = r2 | r4
 003F0FB4	 r20 += r19
 003F0FB8	 r2 = ~r30
 003F0FBC	 r3 = (UI32)r29.0x0034
 003F0FC0	 r2 = r20 | r2
 003F0FC4	 r2 = r19 ^ r2
 003F0FC8	 r2 += r3
 003F0FCC	 r3 = (UI32)-0xFE84[r25]
 003F0FD0	 r2 += r21
 003F0FD4	 r21 = r2 + r3
 003F0FD8	 r4 = r21 >>11
 003F0FDC	 r2 = r21 <<21
 003F0FE0	 r21 = r2 | r4
 003F0FE4	 r3 = (UI32)*r16
 003F0FE8	 r4 = (UI32)r16.0x0004
 003F0FEC	 r2 = (UI32)r16.0x000C
 003F0FF0	 r21 += r20
 003F0FF4	 r3 += r30
 003F0FF8	 r4 += r21
 003F0FFC	 r5 += r20
 003F1000	 r2 += r19
 003F1004	 (UI32)r16.0x000C = r2
 003F1008	 (UI32)r16.0x0004 = r4
 003F100C	 (UI32)r16.0x0008 = r5
 003F1010	 (UI32)*r16 = r3
 003F1014	 r4 = r29 +0x0010
 003F1018	 r5 = 0x0000
 003F101C	 call (r24 + 0x0437)*4
 003F1020	 r31 = (UI32)r29.0x006C
 003F1024	 r30 = (UI32)r29.0x0068
 003F1028	 r21 = (UI32)r29.0x0064
 003F102C	 r20 = (UI32)r29.0x0060
 003F1030	 r19 = (UI32)r29.0x005C
 003F1034	 r18 = (UI32)r29.0x0058
 003F1038	 r17 = (UI32)r29.0x0054
 003F103C	 r16 = (UI32)r29.0x0050
 003F1040	 r29 += 0x0070
 003F1044	 return
 003F1048	 r7 = 0x0000
 003F104C	 r8 = r4
 003F1050	 if u(r7>=r6) goto $003F1088
 003F1054	 r3 = (UI8)r5.0x0003
 003F1058	 r4 = r8 + r7
 003F105C	 (UI8)*r4 = r3
 003F1060	 r2 = (UI32)*r5
 003F1064	 r7 += 0x0004
 003F1068	 r2 = r2 >>8
 003F106C	 (UI8)r4.0x0001 = r2
 003F1070	 r3 = (UI16)*r5
 003F1074	 (UI8)r4.0x0002 = r3
 003F1078	 r2 = (UI8)*r5
 003F107C	 r5 += 0x0004
 003F1080	 (UI8)r4.0x0003 = r2
 003F1084	 if u(r7<r6) goto $003F1054
 003F1088	 return
 003F108C	 -
 003F1090	 r9 = r6
 003F1094	 r8 = 0x0000
 003F1098	 r10 = r5
 003F109C	 if u(r8>=r9) goto $003F10E0
 003F10A0	 r7 = r4
 003F10A4	 r2 = r10 + r8
 003F10A8	 r4 = (UI8)r2.0x0001
 003F10AC	 r3 = (UI8)*r2
 003F10B0	 r5 = (UI8)r2.0x0002
 003F10B4	 r6 = (UI8)r2.0x0003
 003F10B8	 r4 = r4 <<8
 003F10BC	 r3 |= r4
 003F10C0	 r5 = r5 <<16
 003F10C4	 r3 |= r5
 003F10C8	 r6 = r6 <<24
 003F10CC	 r3 |= r6
 003F10D0	 r8 += 0x0004
 003F10D4	 (UI32)*r7 = r3
 003F10D8	 r7 += 0x0004
 003F10DC	 if u(r8<r9) goto $003F10A4
 003F10E0	 return
 003F10E4	 r7 = 0x0000
 003F10E8	 r8 = r4
 003F10EC	 if u(r7>=r6) goto $003F1108
 003F10F0	 r2 = r5 + r7
 003F10F4	 r4 = (UI8)*r2
 003F10F8	 r3 = r8 + r7
 003F10FC	 r7++
 003F1100	 (UI8)*r3 = r4
 003F1104	 if u(r7<r6) goto $003F10F0
 003F1108	 return
 003F110C	 r3 = 0x0000
 003F1110	 if u(r3>=r6) goto $003F1124
 003F1114	 r2 = r4 + r3
 003F1118	 r3++
 003F111C	 (UI8)*r2 = r5
 003F1120	 if u(r3<r6) goto $003F1114
 003F1124	 return
 003F1128	 -
 003F112C	 r5 = r4 +0x0001
 003F1130	 r3 = r5
 003F1134	 if (r4==0) goto $003F1154
 003F1138	 r2 = (UI8)*r4
 003F113C	 r4 = r3
 003F1140	 if (r2==0) goto $003F114C
 003F1144	 r3++
 003F1148	 call (r24 + 0x0442)*4
 003F114C	 r2 = r3 - r5
 003F1150	 return
 003F1154	 r2 = 0x0000
 003F1158	 call (r24 + 0x0448)*4
 003F115C	 -
 003F1160	 r7 = r5
 003F1164	 if (r6==0) goto $003F119C
 003F1168	 if u(r4<r5) goto $003F11A4
 003F116C	 r2 = r5 + r6
 003F1170	 r3 = r2 -0x0001
 003F1174	 if u(r3<r4) goto $003F11A4
 003F1178	 r2 = r4 + r6
 003F117C	 r5 = r3
 003F1180	 r3 = r2 -0x0001
 003F1184	 r2 = (UI8)*r5
 003F1188	 r6--
 003F118C	 (UI8)*r3 = r2
 003F1190	 r5--
 003F1194	 r3--
 003F1198	 if (r6!=0) goto $003F1184
 003F119C	 r2 = r4
 003F11A0	 return
 003F11A4	 r5 = r7
 003F11A8	 r2 = r7 & 0x0003
 003F11AC	 r3 = r4
 003F11B0	 if (r2==0) goto $003F11E0
 003F11B4	 r6--
 003F11B8	 r2 = -0x0001
 003F11BC	 if (r6==r2) goto $003F119C
 003F11C0	 r7 = -0x0001
 003F11C4	 r2 = (UI8)*r5
 003F11C8	 r6--
 003F11CC	 (UI8)*r3 = r2
 003F11D0	 r5++
 003F11D4	 r3++
 003F11D8	 if (r6!=r7) goto $003F11C4
 003F11DC	 call (r24 + 0x045B)*4
 003F11E0	 r2 = r4 & 0x0003
 003F11E4	 if (r2!=0) goto $003F11B4
 003F11E8	 r2 = 0x0003
 003F11EC	 if u(r2>=r6) goto $003F11B4
 003F11F0	 r7 = 0x0003
 003F11F4	 r2 = (UI32)*r5
 003F11F8	 r6 -= 0x0004
 003F11FC	 (UI32)*r3 = r2
 003F1200	 r5 += 0x0004
 003F1204	 r3 += 0x0004
 003F1208	 if u(r7<r6) goto $003F11F4
 003F120C	 call (r24 + 0x0461)*4
 003F1210	 -
 003F1214	 if (r6==0) goto $003F1244
 003F1218	 r3 = (I8)*r4
 003F121C	 r2 = (I8)*r5
 003F1220	 if (r3==r2) goto $003F1234
 003F1224	 r2 = (I8)*r4
 003F1228	 r3 = (I8)*r5
 003F122C	 r2 -= r3
 003F1230	 return
 003F1234	 r4++
 003F1238	 r5++
 003F123C	 r6--
 003F1240	 if (r6!=0) goto $003F1218
 003F1244	 r2 = 0x0000
 003F1248	 call (r24 + 0x0480)*4
 
talkbot
I tried to change the instructions at 3f1230 and 3f1240 to nop hoping it would bypass the md5 verification but then the board doesn't seem to boot at all, even with a valid md5. So either that is a bad patch or there is a checksum on that section too.
naf
join:2017-12-12

1 edit
to talkbot
I thought they were just raw deflate streams. I was wrong.
It appears the stream is followed immediately by the CRC32 of the uncompressed data (but little endian) and the length of the uncompressed stream (but little endian). So like a gzip stream but without the gzip header.
talkbot
join:2017-12-11
Ok I see the length is there and I guess ziprisc complains about the length because it is not padded out to a 32bit value if it doesn't end on a 4 byte boundary.
naf
join:2017-12-12
to talkbot
Which byte range is "E3 93 51 9F EC 17 0C 8D 23 E7 32 E1 BF E8 1E 53" the MD5 of?
Stewart
join:2005-07-13
said by naf:

Which byte range is "E3 93 51 9F EC 17 0C 8D 23 E7 32 E1 BF E8 1E 53" the MD5 of?

It's MD5 of the entire section, after zeroing where it is stored (0x10 through 0x1F).
talkbot
join:2017-12-11
I'm not sure how the firmware will treat the section from 3e0000-3effff when calculating the hash since in flash it does contain unique data. I have tried skipping, setting to 00/FF.

Anyone figured out how the addressing works?
talkbot

1 edit
Does this look right
*entrypoint*
psw = 0x00C3
r27 = 0x20000000
0x20004004 = 0x0C253E	RIFACE_WAIT_STATE
0x20008100 = 0x0F8404	BUSCON_DRAM_CONTROL
0x20004000 = 0x2F03	RIFACE_WIDTH
0x20004000 = 0x2C03	
0x200087E0 = 0x010E01	bus controller?
0x200087E0 = 0x110E01
0x200087E0 = 0x050E01
0x200087E0 = 0x050E01
0x200087E0 = 0x090E01
0x20004008 = 0x00FF	RIFACE_TURNOFF_DELAY 
0x20008114 = 0x003D	BUSCON_DRAM_SREFTIME 
0x20008828 = 0x0100	bus controller?
0x2000841C = 0x1101FF	bus controller?
0x2000861C = 0		bus controller?
r9 = 0x1CFFFFFC
r9 = 0x0CFF0000
r10 = 0x0CFF13CC	table start
r11 = 0x06 	table # entries
memcpy(0x0100,  0x0CFF124C, 0x60*4)	data
memcpy(0x040000, 0x0CFF0030, 0x487*4)	code
r24 = 0x110000
r25 = 0x010100
r29 = 0x200000
goto 0x40010079*4 = 0x0401E4 = 0x3F0214?
 

because dropping in at 0x3F0214 doesn't seem to be correct.
naf
join:2017-12-12
said by talkbot:

Does this look right because dropping in at 0x3F0214 doesn't seem to be correct.

Math looks good to me. Why don't you like that as an entry point?
talkbot
join:2017-12-11
Well because none of the registers used in that section have been setup and the call at 3F0254 will seem to point to 0x440158 which I am not sure what is at that address.
naf
join:2017-12-12
[unless im smoking crack...]
r24 and r25 get set by the table3 loader macro which makes the loads at 0x3F0224 read from the data portion loaded at 0x100. (also works for the other loading of md5 constants from different offsets of same data section)

i have the jump at 3F0254 going to 3F0188 (0x56 words from the beginning of the code that got loaded at 0x40000)
talkbot
join:2017-12-11
If we jump in at 3F0214 we see r17,r31,r16 saved. None of these were previously set. It may not matter in this case since it is first entry to this section.

So call (0x00110000 + 0x056)*4 = call (0x00440158)

the last call we had call (0x000401E4). So can we ignore some of the MSB? This goes back to understanding the addressing.

Before the call we have

r29 = 0x1FFFE0
0x1FFFF4 = r17
0x1FFFF8 = r31
0x1FFFF0 = r16
r17 = *(0x12C) = 0x04881D05
r27 = *(0x130)
r22 = 0x800000
r26 = 0x1D000000
r2 = 0x1877E2FB
r4 = *(0x1877E2F7) ??
r3 = *(0x20003040) peripheral register?
 

I am still learning as I go.
System to talkbot

(topic move) ObiHAI Obi100/Obi110 Firmware Mod Discussion

Moderator Action
The post that was here (and all 3 followups to it), has been moved to a new topic .. »ObiHAI Obi100/Obi110 Google Voice Working again (DNS)
naf
join:2017-12-12
to talkbot

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

r17 = *(0x12c) = 0x00020000
r27 = *(0x130) = 0x20000000
(data was loaded at 0x100, so just a 0x2C/0x30 offset into it)
naf
join:2017-12-12

1 edit
to talkbot

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

After accumulating md5s across like 6 different sections, the jspci at 3F0148 is a call to memcmp MD5s.
Might be easiest to replace that instruction with a faked successful comparison by just setting r2 directly to 0 (E0 04 00 00) instead.

Now if only I could make this fucking spi flash circuit work...
naf
Limited success: flash works and I can modify the build# and ignore the md5s and still boot.
talkbot
join:2017-12-11
Obi100 lives!!

So it is working with the certificate patch but I am not sure how to tell whether I am hitting a server with the new certificate or not.
talkbot
Thanks for pointing out my error with the offsets. I have patched the instruction at 3F1220 to 0x10C00003 aka if u(r3 >= 0) goto $003F1234 and now I am able to boot with a bad MD5, no christmas lights. Now I have to fix up the patched deflate section with the proper length value and try it.
naf
join:2017-12-12
to talkbot
I always hated christmas lights :-)

Ya, I put in a cert, but I still get the dreaded BASESSL:verifing:20
BASESSL:connect error:-1:5[4401]"
errors.

Which cert you put in? I used this, since its the root i get when connecting manually to talk.google.com:5552...
-----BEGIN CERTIFICATE-----
MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG
EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg
R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9
9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq
fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv
iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU
1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+
bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW
MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA
ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l
uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn
Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS
tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
-----END CERTIFICATE-----
 
talkbot
join:2017-12-11
-----BEGIN CERTIFICATE-----
MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G
A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp
Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1
MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG
A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL
v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8
eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq
tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd
C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa
zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB
mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH
V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n
bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG
3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs
J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO
291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS
ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd
AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7
TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg==
-----END CERTIFICATE-----
 

I think mail.google.com is the server that uses it.
naf
join:2017-12-12
to talkbot
VICTORY. It made me get a new oauth token, and voila. Connected.
SArcanine
join:2009-11-09
New York
Nice. Would you post a bpatch?

Also, is there any chance anyone would be willing to try to figure out how to make the md5 check pass for integrity purposes?
netmduser
join:2017-11-26
Nice! Can someone summarize the steps taken to accomplish this? Or are all the steps in the thread?
SArcanine
join:2009-11-09
New York
said by netmduser:

Nice! Can someone summarize the steps taken to accomplish this? Or are all the steps in the thread?

This is why I asked for a bpatch. That would simplify things and avoid possibilities for mistakes. Also, if a sha256 checksum for the patched firmware is provided alongside the bpatch, it would be possible to ensure that the result is really what it ought to be without distributing any of obihai’s intellectual property.
netmduser
join:2017-11-26
I am interested in the summary just to broaden my understanding how to do this. bpatch yes.
naf
join:2017-12-12

3 recommendations

to talkbot
talkbot, it's your victory as much as mine. any objections to me dumping out a patch here for anyone stupid enough to attempt to flash it?

we should ask for payment of a FUCK YOU postcard to obihai for not taking the 10 minutes to do this themselves...
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net

2 recommendations

to naf
said by naf:

VICTORY. It made me get a new oauth token, and voila. Connected.

Holy crap! Congratulations to you and everyone who contributed!

jsolo1
Premium Member
join:2001-07-01
PRIL
to naf
I've been following this thread from the get-go. If I'm understanding correctly, you've replaced the outdated cert with the new one. This will need to be repeated if/when google updates certs again?
taoman
Premium Member
join:2013-09-13
Seattle, WA

2 recommendations

to naf
said by naf:

VICTORY. It made me get a new oauth token, and voila. Connected.

Just an FYI. Starting yesterday a lot of people with OBi110/OBi100 devices suddenly became able to connect again to Google Voice. It's unclear why but there may have been a change on Google's end to enable this.

»www.obitalk.com/forum/in ··· msg86012
talkbot
join:2017-12-11

1 recommendation

to naf
I don't have any objection to a patch. It would be nice to use a valid md5 though so that bad flash checks can still work. Did you document the ranges used in the MD5?

Also it would be nice to produce a real update fw file but it may not be possible due to secure signatures.

fw header:
4F 42 31 30 30 5F 46 57 5F 50 41 43 4B 41 47 45 	OB100_FW_PACKAGE
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 	
56 CC 2C 5B A5 D6 95 19 AC A0 13 46 8D BD ED 5E 	256bit value, SHA-256?
C3 B5 74 1B E8 83 A6 08 AB 4C FA 35 B0 7A 04 5A 
00 00 00 02 00 22 3C EE 00 00 00 00 00 00 00 00 	# sections, total length
00 00 00 00 00 00 01 00 00 08 00 00 00 0F 3B EE 	section index, file offset, flash offset, length
00 00 00 01 00 0F 3C EE 00 2D 00 00 00 13 00 00 	section index, file offset, flash offset, length
37 96 D9 0A 8A D5 71 31 4B 4D 60 3B FB 08 4E 24 	
37 F1 C0 03 1E DF DE 01 3C E3 92 42 1D 8F 0C 57 
ED C4 8F 3E 17 D3 CF 64 92 DC 75 3E E1 E6 3F 47 
F1 FE 98 3A 21 D0 E0 15 9B 09 8D 0B DB B3 E2 76 
EB 5E EB 2E EF 5F 58 25 44 D3 AC 2D CC FF 50 7B 
25 54 72 73 2E CD 67 5C B4 25 F2 2F 50 97 D9 03 
43 5E 5E 62 AF 45 07 7D A0 07 AB 3F 4C F0 E9 5D 
79 01 EC 16 CC F6 BA 29 59 89 35 5E B1 97 C5 21 
08 4C B3 22 3D DF 13 DB F3 98 C9 19 75 FD 67 37 
 
naf
join:2017-12-12
to talkbot
What the hell do people use to make binary diffs?
naf

1 recommendation

to talkbot
said by talkbot:

Did you document the ranges used in the MD5?

I didn't get as far as going to ranges when I saw how many calls to that sub there were.
Maybe you can backtrack them easier than me. Here's some notes on the section right at the beginning of the loaded code. (MD5_Other calls MD5 twice more, but with some little endian weirdness):
00213D1E: addi	r29, #-0x00D0, r29	; r29 -= 0x00D0
00213D22: st	#0x00B0[r29], r16 	; (UI32)r29.0x00B0 = r16
00213D26: addi	r29, #0x0098, r16 	; r16 = r29 +0x0098
00213D2A: st	#0x00C8[r29], r30 	; (UI32)r29.0x00C8 = r30
00213D2E: st	#0x00C4[r29], r21 	; (UI32)r29.0x00C4 = r21
00213D32: st	#0x00B8[r29], r18 	; (UI32)r29.0x00B8 = r18
00213D36: st	#0x00B4[r29], r17 	; (UI32)r29.0x00B4 = r17
00213D3A: add	r0, r4, r18		; r18 = r4
00213D3E: addi	r29, #0x0040, r17 	; r17 = r29 +0x0040
00213D42: add	r0, r5, r21		; r21 = r5
00213D46: add	r0, r16, r4		; r4 = r16
00213D4A: addi	r25, #-0x10000, r5	; r5 = r25 -0x10000
00213D4E: add	r0, r6, r30		; r30 = r6
00213D52: addi	r0, #0x0014, r6 	; r6 = 0x0014
00213D56: st	#0x00C0[r29], r20 	; (UI32)r29.0x00C0 = r20
00213D5A: st	#0x00BC[r29], r19 	; (UI32)r29.0x00BC = r19
00213D5E: st	#0x00CC[r29], r31 	; (UI32)r29.0x00CC = r31
00213D62: jspci	r24, #0x044B, r24	; call (r24 + 0x044B)*4       call memmove
00213D66: add	r0, r17, r4		; r4 = r17
00213D6A: jspci	r24, #0x00A3, r24	; call (r24 + 0x00A3)*4       call init md5 constants
00213D6E: add	r0, r16, r4		; r4 = r16
00213D72: jspci	r24, #0x043E, r24	; call (r24 + 0x043E)*4       call strlen
00213D76: add	r0, r2, r6		; r6 = r2
00213D7A: add	r0, r16, r5		; r5 = r16
00213D7E: add	r0, r17, r4		; r4 = r17
00213D82: jspci	r24, #0x00AE, r24	; call (r24 + 0x00AE)*4       call MD5
00213D86: addi	r29, #0x0030, r20 	; r20 = r29 +0x0030
00213D8A: add	r0, r21, r5		; r5 = r21
00213D8E: add	r0, r17, r4		; r4 = r17
00213D92: addi	r0, #0x0010, r6 	; r6 = 0x0010
00213D96: jspci	r24, #0x00AE, r24	; call (r24 + 0x00AE)*4       call MD5
00213D9A: addi	r21, #0x0020, r21 	; r21 += 0x0020
00213D9E: add	r0, r17, r4		; r4 = r17
00213DA2: add	r0, r20, r5		; r5 = r20
00213DA6: addi	r0, #0x0010, r6 	; r6 = 0x0010
00213DAA: st	#0x0030[r29], r0 	; (UI32)r29.0x0030 = 0
00213DAE: st	#0x0034[r29], r0 	; (UI32)r29.0x0034 = 0
00213DB2: st	#0x0038[r29], r0 	; (UI32)r29.0x0038 = 0
00213DB6: st	#0x003C[r29], r0 	; (UI32)r29.0x003C = 0
00213DBA: add	r21, r18, r16		; r16 = r21 + r18
00213DBE: jspci	r24, #0x00AE, r24	; call (r24 + 0x00AE)*4       call MD5
00213DC2: addi	r29, #0x0010, r19 	; r19 = r29 +0x0010
00213DC6: addi	r18, #-0x0020, r6	; r6 = r18 -0x0020
00213DCA: add	r0, r21, r5		; r5 = r21
00213DCE: add	r0, r17, r4		; r4 = r17
00213DD2: addi	r16, #-0x0020, r21	; r21 = r16 -0x0020
00213DD6: jspci	r24, #0x00AE, r24	; call (r24 + 0x00AE)*4       call MD5
00213DDA: addi	r30, #-0x0020, r30	; r30 -= 0x0020
00213DDE: add	r0, r21, r5		; r5 = r21
00213DE2: add	r0, r19, r4		; r4 = r19
00213DE6: addi	r0, #0x0010, r6 	; r6 = 0x0010
00213DEA: jspci	r24, #0x044B, r24	; call (r24 + 0x044B)*4       call memmove
00213DEE: sub	r30, r18, r18		; r18 = r30 - r18
00213DF2: add	r0, r20, r5		; r5 = r20
00213DF6: add	r0, r17, r4		; r4 = r17
00213DFA: addi	r0, #0x0010, r6 	; r6 = 0x0010
00213DFE: jspci	r24, #0x00AE, r24	; call (r24 + 0x00AE)*4       call MD5
00213E02: addi	r16, #-0x0010, r21	; r21 = r16 -0x0010
00213E06: addi	r18, #0x0010, r30 	; r30 = r18 +0x0010
00213E0A: addi	r29, #0x0020, r16 	; r16 = r29 +0x0020
00213E0E: add	r0, r30, r6		; r6 = r30
00213E12: add	r0, r17, r4		; r4 = r17
00213E16: add	r0, r21, r5		; r5 = r21
00213E1A: jspci	r24, #0x00AE, r24	; call (r24 + 0x00AE)*4       call MD5
00213E1E: add	r0, r17, r5		; r5 = r17
00213E22: add	r0, r16, r4		; r4 = r16
00213E26: jspci	r24, #0x00E4, r24	; call (r24 + 0x00E4)*4       call MD5_Other
00213E2A: add	r0, r19, r4		; r4 = r19
00213E2E: add	r0, r16, r5		; r5 = r16
00213E32: addi	r0, #0x0010, r6 	; r6 = 0x0010
00213E36: jspci	r24, #0x0478, r24	; call (r24 + 0x0478)*4       call memcmp
00213E3A: add	r0, r2, r3		; r3 = r2                                   MOD-->e0 06 00 00   r3 = 0
00213E3E: addi	r0, #0x0000, r2 	; r2 = 0x0000
00213E42: beq	r3, r0, $00213E6E	; if (r3==0) goto $00213E6E
00213E46: ld	#0x00CC[r29], r31 	; r31 = (UI32)r29.0x00CC
00213E4A: ld	#0x00C8[r29], r30 	; r30 = (UI32)r29.0x00C8
00213E4E: ld	#0x00C4[r29], r21 	; r21 = (UI32)r29.0x00C4
00213E52: ld	#0x00C0[r29], r20 	; r20 = (UI32)r29.0x00C0
00213E56: ld	#0x00BC[r29], r19 	; r19 = (UI32)r29.0x00BC
00213E5A: ld	#0x00B8[r29], r18 	; r18 = (UI32)r29.0x00B8
00213E5E: ld	#0x00B4[r29], r17 	; r17 = (UI32)r29.0x00B4
00213E62: ld	#0x00B0[r29], r16 	; r16 = (UI32)r29.0x00B0
00213E66: addi	r29, #0x00D0, r29 	; r29 += 0x00D0
00213E6A: ret				; return
00213E6E: addi	r0, #0x0001, r2 	; r2 = 0x0001
00213E72: jspci	r24, #0x004A, r8	; call (r24 + 0x004A)*4    goto 3e76
 
 
talkbot
join:2017-12-11

1 recommendation

to naf
bsdiff
zapattack
join:2012-07-02
CANADA

3 recommendations

Hope this project succeeds.
110 now $20 on NewEgg.
Why waste time unlocking Vonage units?
SArcanine
join:2009-11-09
New York
to jsolo1
said by jsolo1:

I've been following this thread from the get-go. If I'm understanding correctly, you've replaced the outdated cert with the new one. This will need to be repeated if/when google updates certs again?

Yes, assuming that obihai does not just drop web support for the obi100.
SArcanine
to talkbot
said by talkbot:

bsdiff

There is also bdiff:

»bdiff.sourceforge.net
Stewart
join:2005-07-13
to SArcanine
said by SArcanine:

Yes, assuming that obihai does not just drop web support for the obi100.

While it would be possible for Obihai to brick a unit that was left 'phoning home', it seems unlikely that they would take the legal risk doing so, or that many techie users would even leave this path open.

Otherwise, if they merely 'dropped' support, wouldn't existing GV accounts continue to work? And even if were difficult to modify the UI to accept the parameters locally, I'd think that the generality of the FW_PACKAGE format would allow easy installation of a new refresh token if needed.
talkbot
join:2017-12-11
to naf
I think the inner md5 is calculated based on the inflated data so probably not going to bother with it. And if the fw files are signed with a private key then we won't be able to sign a patched one.
SArcanine
join:2009-11-09
New York
to Stewart
said by Stewart:
said by SArcanine:

Yes, assuming that obihai does not just drop web support for the obi100.

While it would be possible for Obihai to brick a unit that was left 'phoning home', it seems unlikely that they would take the legal risk doing so, or that many techie users would even leave this path open.

Otherwise, if they merely 'dropped' support, wouldn't existing GV accounts continue to work? And even if were difficult to modify the UI to accept the parameters locally, I'd think that the generality of the FW_PACKAGE format would allow easy installation of a new refresh token if needed.
They do not need to brick the units. They just need to remove their website’s support. Have fun configuring the unit to connect to Google Voice without their website. There is no way to do that currently.
SArcanine
to talkbot
said by talkbot:

I think the inner md5 is calculated based on the inflated data so probably not going to bother with it. And if the fw files are signed with a private key then we won't be able to sign a patched one.

If it were signed with a private key, it would not have taken the patched firmware.
naf
join:2017-12-12

1 edit
to talkbot
Here's a bsdiff to update a full 4MB flash dump to:
1) swap that globalsign cert in instead of those lame valicert and equifax ones
2) disable md5 fw check during boot
3) change the version string, for vanity

EDIT: deleted attachment, see later fixed version
SArcanine
join:2009-11-09
New York
said by naf:

Here's a bsdiff to update a full 4MB flash dump to:
1) swap that globalsign cert in instead of those lame valicert and equifax ones
2) disable md5 fw check during boot
3) change the version string, for vanity

Does this mean that the 2886 firmware update cannot yet be modified in a way that applies this via the typical updated?
Stewart
join:2005-07-13
to naf
Do I understand this process correctly? I believe that:

The present patch is done by reading the flash via SPI, applying the bsdiff to the resulting file, and writing it back to flash via SPI.

This same method could be used to modify the GV refresh token in flash, allowing GV config to be updated without reliance on Obihai's portal.

If it turns out that the firmware package is signed, it won't be possible to make the patch via the web interface, unless a (probably unrelated) vulnerability is found.

OTOH, if the package just uses some hash-based integrity checks, once they are understood both new certificates and GV account updates could be done via the web interface.

jsolo1
Premium Member
join:2001-07-01
PRIL
How would one generate the refresh token? Client ID and secret are needed. Client id can be pulled from the obitalk's portal, but what about the secret.
SArcanine
join:2009-11-09
New York
to jsolo1

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

said by jsolo1:

How would one generate the refresh token? Client ID and secret are needed. Client id can be pulled from the obitalk's portal, but what about the secret.

There is a way to do it for asterisk, but I lost the link that had instructions. This script came up in a quick google search:

»gist.github.com/rinex20/ ··· 6af50582

jsolo1
Premium Member
join:2001-07-01
PRIL
^^Right, look at line 9 of the script. That piece of information is not available unless it's embedded somewhere in the firmware.
naf
join:2017-12-12

1 edit
to Stewart
said by Stewart:

The present patch is done by reading the flash via SPI, applying the bsdiff to the resulting file, and writing it back to flash via SPI.
...

Correct.

My guess is that getting a web-loadable patch is possible. i thinks its just checksums and no signatures, based solely on the strings in the loader code.

If anyone wants to look through the rest of the code and see, the fw offsets of all the deflate'd streams are:
0x1A44C2
0x0f4126
0x1b7ada
0x19EF26
0x12F832
0x1AA7B6
0x168D52
0x1B0FFA
0x1B844A
0x200a8e
0x1e3d26
0x1e8752
0x2011f2
0x202686
 
naf
to talkbot
haha, now I can't connect to the "old" talk.google.com servers. whoops.
Better add that Equifax cert back in...
naf

2 edits

1 recommendation

Fixed.

Here's an improved bsdiff to update an original 2886 4MB flash dump to:
1) swap that globalsign cert in (since its the root for GIAG3) instead of those lame valicert and *verisign* ones, keeping equifax (since its the root for GIAG2)
2) disable md5 fw check during boot
3) bump version string

EDIT: remove superceded attachment. See later version.
SArcanine
join:2009-11-09
New York
Great work. How did you dump it? Was it with a 8pin pomadora clip and spi programmer? I have not opened mine to look.
naf
join:2017-12-12
said by SArcanine:

Great work. How did you dump it? Was it with a 8pin pomadora clip and spi programmer? I have not opened mine to look.

My board had a 7pin male header. Just hooked up to parallel port and used spipgm
talkbot
join:2017-12-11

1 recommendation

to SArcanine

said by SArcanine See Profile
If it were signed with a private key, it would not have taken the patched firmware.

:

The signature is not checked at boot, only at update. By writing directly to flash the check is bypassed.

talkbot
to naf
said by naf:
said by Stewart:

The present patch is done by reading the flash via SPI, applying the bsdiff to the resulting file, and writing it back to flash via SPI.
...

My guess is that getting a web-loadable patch is possible. i thinks its just checksums and no signatures, based solely on the strings in the loader code.
The update code is part of the packed main firmware and there are two obihai CA certificates in there as well. We know the firmware can do certificate verification so it can definitely check a signature on the update file. What else would the 144byte blob in the fw header be if not a signature?
talkbot
to naf
said by naf:

Here's an improved bsdiff

You should probably delete the other one
naf
join:2017-12-12

1 edit
to talkbot
said by talkbot:

The update code is part of the packed main firmware and there are two obihai CA certificates in there as well. We know the firmware can do certificate verification so it can definitely check a signature on the update file. What else would the 144byte blob in the fw header be if not a signature?

You might be right.

We can verify one way or the other if we can just figure out the addressing of the compressed sections wherever they get uncompressed to. Any clues on that?
talkbot
join:2017-12-11
The word preceding the deflate stream is probably the destination address but the msbs of the address and overall memory map are still confusing.
SArcanine
join:2009-11-09
New York
to talkbot
said by talkbot:

said by SArcanine See Profile
If it were signed with a private key, it would not have taken the patched firmware.

:

The signature is not checked at boot, only at update. By writing directly to flash the check is bypassed.

Originally, I thought that he was flashing via the web interface. My mistake.
SArcanine
to talkbot
said by talkbot:
said by naf:
said by Stewart:

The present patch is done by reading the flash via SPI, applying the bsdiff to the resulting file, and writing it back to flash via SPI.
...

My guess is that getting a web-loadable patch is possible. i thinks its just checksums and no signatures, based solely on the strings in the loader code.
The update code is part of the packed main firmware and there are two obihai CA certificates in there as well. We know the firmware can do certificate verification so it can definitely check a signature on the update file. What else would the 144byte blob in the fw header be if not a signature?
This sounds plausible, although if it is a signature, it should have at least a hash plus an copy of it that is encrypted with the private key. You can check the update routines to see if they are verufying a signature, but another way is to zero it out, calculate the md4, md5, sha1 and sha256 and see if the result is contained within that 144 byte blob. If it is a signature, spotting a match via this method would be is a quick and dirty way of confirming it. If there is no match, you get to read assembly.
kersey
join:2017-12-22
to talkbot
Hi, I too have been following this thread. The newcerts2.bsdiff.zip that's been posted for downloaded is what we can use to upgrade the firmware and add the updated certificates? And we can do this through the local web portal?

Just want to be sure so I don't end up bricking this obi100. Thanks for all the work.
talkbot
join:2017-12-11
to SArcanine
Yes the obvious things have been tried. I think it is probably salted too. Please feel free to investigate and report your findings.
SArcanine
join:2009-11-09
New York
to kersey
said by kersey:

Hi, I too have been following this thread. The newcerts2.bsdiff.zip that's been posted for downloaded is what we can use to upgrade the firmware and add the updated certificates? And we can do this through the local web portal?

Just want to be sure so I don't end up bricking this obi100. Thanks for all the work.

It is part of it. You also need to open up the obihwi and use a flash programmer. We do not know how to update through the web portal yet.
SArcanine
to talkbot
said by talkbot:

Yes the obvious things have been tried. I think it is probably salted too. Please feel free to investigate and report your findings.

I am backlogged at work. I do not have time to take a dump of flash memory and poke around.

Anyway, we at least have evidence that can be used to accuse obihai of refusing to do a trivial update. The claims on their forums that it takes enormous engineering effort are clearly wrong.

jsolo1
Premium Member
join:2001-07-01
PRIL
to talkbot
So here's a thought.

This is with respect to oauth2 provisioning.

So if we can identify the secret, then perhaps we can change the secret and clientid altogether that way eliminating obihai entirely from the provisioning process. That is, create refresh tokens just like we do for asterisk. This completely eliminates and need for obihai and sharing any data with them.
talkbot
join:2017-12-11
I never updated my device to use oauth2 it is still using credentials directly.
talkbot
to SArcanine
You can work directly from the fw file like naf did.

Obihai may no longer have valid licenses to the development tools.

jsolo1
Premium Member
join:2001-07-01
PRIL
to talkbot
said by talkbot:

I never updated my device to use oauth2 it is still using credentials directly.

Right, but i'm saying perhaps it's possible to do away with obitalk altogether in the first place.
naf
join:2017-12-12

1 recommendation

to talkbot
said by talkbot:

There is an md5 hash at the beginning of the firmware section which covers the whole section (0x130000 bytes) and which is present in the update file. But when flashed to the device the unit info section of the flash falls within that range so would have to be ignored when verifying it. There is another 128bit value shortly following that md5 but I haven't been able to reproduce it.

The second md5 is salted by prepending "Goodbye! Reboot Now" and then includes the first 0x110000 bytes (stopping right before unit info section).

Unfortunately this is the one we already defeated by bypassing the check during boot.
talkbot
join:2017-12-11
to jsolo1
By using credentials you are avoiding obitalk but you have to reduce your Google account security. If you have a separate Google account for your obi this is not a big deal IMO.

jsolo1
Premium Member
join:2001-07-01
PRIL
said by talkbot:

By using credentials you are avoiding obitalk but you have to reduce your Google account security. If you have a separate Google account for your obi this is not a big deal IMO.

If using plaintext, yes, but if using oauth2, then no security is compromised. If somehow we could embed our own refresh token, that would do away with the need for obitalk for gv provisioning.
talkbot
join:2017-12-11
to naf
Oh thats cute. Zero out both md5, prepend string (without null?), and take md5 of range 2d0000-3dffff? Doesn't seem to match up.
naf
join:2017-12-12
said by talkbot:

Oh thats cute. Zero out both md5, prepend string (without null?), and take md5 of range 2d0000-3dffff? Doesn't seem to match up.

Correct. No null.
talkbot
join:2017-12-11
Got it, was looking at the wrong bytes before. Well now we can unpatch the md5 and petition obihai to sign the image.
naf
join:2017-12-12
to talkbot
i dunno, i read over on the obitalk forum that we havent achieved anything yet...
SArcanine
join:2009-11-09
New York
said by naf:

i dunno, i read over on the obitalk forum that we havent achieved anything yet...

Is this the thread?

»www.obitalk.com/forum/in ··· =13385.0
naf
join:2017-12-12

1 recommendation

to SArcanine

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

Ya, Mango See Profile narced on us
SArcanine
join:2009-11-09
New York
Do we know if the devices have a boot loader such as Das U-Boot or CFE that would allow for TFTP flashing or if it is possible to downgrade the firmware to a version where there was no signature check?

Also, any idea what OSS components are in the firmware?

Lastly, although this is the epitome of laziness, I do not have access to my obi100 right now. Could someone check the HTTP headers to see what web server is used. If it is a known web server, we could look up CVE vulnerabilities to find one that does code injection. From there, it should be possible to write code to bypass the normal updater.
SArcanine

1 recommendation

to naf
said by naf: Ya, Mango See Profile narced on us
I just love this remark:
said by WelshPaul :

I don't think OBIHAI have anything to worry about. The hassle of tearing down an obsolete device and using a flash programmer to direct flash a modified firmware version would be beyond the limits of most OBi users.

He clearly does not realize that things will not always be this difficult.

Similarly:
said by Judgeless :

You can download a file and upgrade the firmware using the web interface. That is really easy. There is no reason to directly program the flash.

This guy apparently does not understand what code signing is. If it is really being used, it would prevent this from being done. At least the intended way anyway. A CVE in the webserver would allow bypassing that.
SArcanine

1 edit
to talkbot
said by talkbot:

Yes the obvious things have been tried. I think it is probably salted too. Please feel free to investigate and report your findings.

While people seem to have since found the salted hash, I want to add that it occurs to me that a signature could be really simple. It could consist of calculating a hash, encrypting it with the private key and then putting it into the header. Then the updater could decrypt it with the public key, and verify it against the firmware update with the signature zeroed. In this way, there would be no need for the hash used for the signature to be stored in plaintext. :/

kevinds
Premium Member
join:2003-05-01
Calgary, AB
to SArcanine
said by SArcanine:

This guy apparently does not understand what code signing is. If it is really being used, it would prevent this from being done. At least the intended way anyway.

That was my thought when I read that too...

Ask people why they can't get root access for some Android phones...
kevinds
to SArcanine
said by SArcanine:

It occurs to me now that I think about it that the signature could be really simple.

Could be a lot of things..
SArcanine
join:2009-11-09
New York
to kevinds
said by kevinds:
said by SArcanine:

This guy apparently does not understand what code signing is. If it is really being used, it would prevent this from being done. At least the intended way anyway.

That was my thought when I read that too...

Ask people why they can't get root access for some Android phones...
Phones? I still cannot get root access on my Android TV. :/
SArcanine
to kevinds
said by kevinds:
said by SArcanine:

It occurs to me now that I think about it that the signature could be really simple.

Could be a lot of things..
It is just a thought for people to keep in mind while looking through the firmware.
naf
join:2017-12-12

2 recommendations

to talkbot
Here's the latest bsdiff to update an original 2886 4MB flash dump to:
1) swap that globalsign cert in (since its the root for GIAG3) instead of those lame valicert and verisign ones, keeping equifax (since its the root for GIAG2)
2) put in correct fw md5s, so we can leave the boot-time check
3) change version string to 2886-naf3
naf

8 recommendations

to talkbot
And for those of you who don't have a screwdriver and some resistors, here's a web-loadable version...

Just apply the patch against OBi110-1-3-0-2886.fw and load via the GUI.
SArcanine
join:2009-11-09
New York

1 recommendation

said by naf:

And for those of you who don't have a screwdriver and some resistors, here's a web-loadable version...

Just apply the patch against OBi110-1-3-0-2886.fw and load via the GUI.

In that case, I take it that there was no code signing.
thUzu7AkU
Premium Member
join:2014-05-05
Beverly Hills, CA
to naf
said by naf:

And for those of you who don't have a screwdriver and some resistors, here's a web-loadable version...

Thank you so much, @naf. Updated via web. Running 1.3.0 (Build: 2886-naf3). Working great!

kevinds
Premium Member
join:2003-05-01
Calgary, AB
to naf
said by naf:

And for those of you who don't have a screwdriver and some resistors

Or a parallel port.. lol I think that would be the harder requirement for most hah
talkbot
join:2017-12-11
to naf
Nice work! So what is the header composed of? Did you change the downgrade whitelist so that it was flashable back to stock 2886?
naf
join:2017-12-12

1 edit
said by talkbot:

So what is the header composed of? Did you change the downgrade whitelist so that it was flashable back to stock 2886?

It is web-flashable back to stock, there's just the downgrade blacklist of 2860 and 2881, same as original. (see code @ offset 0xdb00 in the deflated section that begins at 0x12f832)

No clue on what the extra 0x20 and 0x90 bytes of the headers were, but nothing checks them. I kept looking at the web updater code, and I only see MD5s. The web updater only checks that each section has its MD5 at offset 0x10 (as you identified early on) and that the fw can pass the salted md5 check that is also enforced at runtime.
naf
to kevinds
said by kevinds:

Or a parallel port.. lol I think that would be the harder requirement for most hah

youre definitely right. i had to borrow one for the lpt myself.
for... uhhh.... printing....

kevinds
Premium Member
join:2003-05-01
Calgary, AB
said by naf:

youre definitely right. i had to borrow one for the lpt myself.
for... uhhh.... printing....

I lost my LPT programmer.. I was without a LPT port for so long I lost it.. Have a USB one I still haven't tried programming My current laptop has a docking station that provides a real one along with a serial port..

Before I try and find a replacement I need to confirm if my Pi3 can do everything the LPT one can do.. Has worked for my recent projects
talkbot
join:2017-12-11
to naf
Ha, I thought it was too easy to consider trying especially since 2824 had a totally different header. I thought there was a whitelist too because 2824 appears in a string near the downgrade error string. Oh well, all is good. Nice collaborating with you and happy new year.

jsolo1
Premium Member
join:2001-07-01
PRIL
to thUzu7AkU
Maybe you could post the resulting web flashable binary for those who cannot combine the stock binary and diff file?
SArcanine
join:2009-11-09
New York
said by jsolo1:

Maybe you could post the resulting web flashable binary for those who cannot combine the stock binary and diff file?

Speaking as a software developer, I can say that would likely be a legal issue. It likely is not hard to combine the two. Just boot a Ubuntu live environment and do it from there.
thUzu7AkU
Premium Member
join:2014-05-05
Beverly Hills, CA

1 edit

2 recommendations

to jsolo1
said by jsolo1:

Maybe you could post the resulting web flashable binary for those who cannot combine the stock binary and diff file?

bspatch OBi110-1-3-0-2886.fw new.fw newcerts3.fw.bsdiff

ETA (bspatch binaries):
* OS X: bspatch built in. Terminal.app in /Applications/Utilities
* Windows: »www.romhacking.net/utili ··· ies/929/
naf
join:2017-12-12
to talkbot
said by talkbot:

Nice collaborating with you and happy new year.

Likewise. Let's do it again sometime.
netmduser
join:2017-11-26
Thanks again to you all, pretty amazing accomplishment. I was able to generate new.fw with the instructions provided.
talkbot
join:2017-12-11
to SArcanine
There is bspatch for Windows and OSX

jsolo1
Premium Member
join:2001-07-01
PRIL
to thUzu7AkU
Good deal. Thanks for the link.
SArcanine
join:2009-11-09
New York
to talkbot
said by talkbot:

There is bspatch for Windows and OSX

I figured that I would give instructions that would just work for people. I had intended it for Windows users though.
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net
I installed the naf3 build on a spare 110, added to OBiTALK, and configured Google Voice. For interest's sake I'll leave OBiTALK connected.
SArcanine
join:2009-11-09
New York
said by Mango:

I installed the naf3 build on a spare 110, added to OBiTALK, and configured Google Voice. For interest's sake I'll leave OBiTALK connected.

Great, although I wonder how long it will be until Obihai removes the ability to install the tokens through their website.
OBi1FW
join:2017-12-27
Vienna, VA

2 recommendations

to talkbot
If you don't like to use bspatch, here is link to the web flashable binary, naf3 version: »pastebin.ca/3952393
SArcanine
join:2009-11-09
New York
said by OBi1FW:

If you don't like to use bspatch, here is link to the web flashable binary, naf3 version: »pastebin.ca/3952393

I am not a lawyer, but I am a professional software developer and I am familiar with how licensing matters work by necessity. That patched version is likely illegal to distribute unless Obihai gave permission to redistribute derivatives. People would need to run bspatch themselves for it to be okay.
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net

1 edit

1 recommendation

to SArcanine

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

said by SArcanine:

Great, although I wonder how long it will be until Obihai removes the ability to install the tokens through their website.

I am optimistic that won't happen. The 1xx-series devices ceasing to function due to a change at Google beyond Obihai's control is one thing. Deliberately preventing users from using their products would be a different matter entirely, something I expect even Obihai wouldn't stoop to. Anyway, it would only encourage users to reverse engineer the firmware further.
said by OBi1FW:

If you don't like to use bspatch, here is link to the web flashable binary, naf3 version: »pastebin.ca/3952393

I found my old OBi110 hardware 2.8 version with the damaged FXS port and installed this. Preliminary testing indicates it works properly.
oncodx
join:2015-12-05
to SArcanine
I have a newbie question, after updating the firmware and connecting to the GV through the Obitalk web portal, can I delete the device from the Obitalk portal at this point? I.e., what does the Obitalk portal do after authenticating the device through them with the GV server?
oncodx
to talkbot
double post, deleted
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net

1 recommendation

to oncodx
said by oncodx:

can I delete the device from the Obitalk portal at this point?

Yes, you surely can. You can also use the device's internal web server to disable OBiTALK Service if you are particularly concerned about your privacy.

At any time you can add your device back to the OBiTALK portal if you want to modify your Google Voice configuration.
oncodx
join:2015-12-05
So if we do not use the obi device to device talk (I guess that's what the Obitalk service is about), then all Obitalk portal does is to provide a platform for the OAuth2 authentication between the Obi device and the GV server, is that correct?

And after authentication, the Obi device connects to the GV server directly, i.e., does not go through the Obitalk portal anymore, correct?
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net
said by oncodx:

then all Obitalk portal does is to provide a platform for the OAuth2 authentication between the Obi device and the GV server, is that correct?

Basically yes. OBiTALK also allows you to configure other aspects of your device besides Google Voice.
said by oncodx:

And after authentication, the Obi device connects to the GV server directly, i.e., does not go through the Obitalk portal anymore, correct?

Correct.
oncodx
join:2015-12-05
OK, two more questions along this line, I surely don't want to hijack this thread.

After authentication, if the device needs to reconnect to the GV server after, say, a power outrage, does the device need to go through the Obitalk portal again? I guess what I am asking is, after the 1st authentication, does the ID and the secret get stored in the device? Or how does the GV server recognize the device from the point on?

Second, because I can enter the GV credential (email and password) on the device web GUI, if I turn off OAuth2 by enabling the less secure app access on the google side, can the device connect to the GV server without even going through the Obitalk portal at all?
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net
said by oncodx:

does the ID and the secret get stored in the device?

No, the OAuth2 "token" does. The device should work properly after a power outage with no user intervention.
said by oncodx:

Second, because I can enter the GV credential (email and password) [...] can the device connect to the GV server without even going through the Obitalk portal at all?

I tried this today and was not able to make it even attempt to connect.
oncodx
join:2015-12-05
So the OAuth2 token gets stored in the Obi device after 1st authentication? If that's the case, then Obi device only needs to go through the Obitalk portal once in its life time, right? I mean, even after a firmware update, the token should still be there and remains the same, correct?

jsolo1
Premium Member
join:2001-07-01
PRIL

1 recommendation

Technically yes, but my experience has shown otherwise.

Two devices, obi202 and obi200. Both had all the obitalk crap disabled. I had to reauthenticate the gv accounts on the 202 after manually flashing the firmware file. Flashing the 200 in the same manner (with the same file) kept the oauth token intact.
oncodx
join:2015-12-05
Uhm, interesting! Thanks for the reply and the sharing!
said by jsolo1:

Technically yes, but my experience has shown otherwise.

Two devices, obi202 and obi200. Both had all the obitalk crap disabled. I had to reauthenticate the gv accounts on the 202 after manually flashing the firmware file. Flashing the 200 in the same manner (with the same file) kept the oauth token intact.

SArcanine
join:2009-11-09
New York
to talkbot
Does anyone want to tell SteveInWa that he is the one who did nonsense speculation?

»www.obitalk.com/forum/in ··· msg85509
netmduser
join:2017-11-26
The forum support provided is valuable probably best not to let them know or if anyone does please go easy on them.

Hopefully they will at minimum be silent on what new fix is available and not interfere any further.

Look at Apple, issued an apology to customers after its admission to slowing down older iPhones sparked consumer outrage and national headlines.

In an attempt to regain the trust of consumers, the company will reduce the cost of an out-of-warranty replacement battery
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net

1 recommendation

to SArcanine
He'll figure it out when hundreds (thousands?) of users install the crowdsourced firmware if and when Google changes their certificates again in January.

brg
Premium Member
join:2001-01-03
Chicago, IL
said by Mango:

He'll figure it out when hundreds (thousands?) of users install the crowdsourced firmware if and when Google changes their certificates again in January.

One of the reasons I'm not rushing to do so on my Obi100. That and the flexibility I still have with the older variants of the FW (2774, 2776, 2824) that don't lock out prior versions...

jsolo1
Premium Member
join:2001-07-01
PRIL
^^Maybe enabling the firmware downgrade is as simple as toggling a bit or two in the firmware¿?

At some point google might require oauth authentication only, but I don't see that happening any time soon. Even with 2 step verification, one can create 'app' passwords that are accepted in clients that use plain text passwords.
naf
join:2017-12-12
to talkbot
Anybody recognize the crypto functions at offsets 0xC470 and 0xBEC8 in the compressed code stream starting at 0x12f832 in the 2886 fw file?

Still trying to figure out how the oauth refresh token gets on the device...
naf
said by naf:

Anybody recognize the crypto functions at offsets 0xC470 and 0xBEC8 in the compressed code stream starting at 0x12f832 in the 2886 fw file?

Nevermind, it looks suspiciously like RC4
SArcanine
join:2009-11-09
New York
said by naf:
said by naf:

Anybody recognize the crypto functions at offsets 0xC470 and 0xBEC8 in the compressed code stream starting at 0x12f832 in the 2886 fw file?

Nevermind, it looks suspiciously like RC4
That is hilarious. Do a network capture of the tokens being put onto the device. If it is RC4, it should be relatively easy to crack. It would also confirm conventional wisdom that embedded systems security is a joke.
JTS33
join:2003-05-03
USA
to talkbot
Exciting news! Loaded the modified firmware even though GV is currently working fine with the original 2886 firmware. So is it that we won't know whether the modified firmware is effective until GV stops working on original 2886 firmware again?
SArcanine
join:2009-11-09
New York
said by JTS33:

Exciting news! Loaded the modified firmware even though GV is currently working fine with the original 2886 firmware. So is it that we won't know whether the modified firmware is effective until GV stops working on original 2886 firmware again?

naf confirmed that the change to make it work fixed things before Google Voice started working fine for people again.

hapollo
join:2007-05-13
WesterOS
to Mango
said by Mango:

I found my old OBi110 hardware 2.8 version with the damaged FXS port and installed this. Preliminary testing indicates it works properly.

I thought your Obi110 was still running on 1.3.0 (Build: 2824) since you didn't want to upgrade to 2886? Did you upgrade to 2886 to install this?
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net
I haven't yet messed with my primary OBi; I've just installed naf3 on two slightly broken 110s (hardware versions 2.8 and 3.4) for experimental purposes. I'm happy to report naf3 has been 100% stable so far.
cqarlo932
join:2010-07-06
to Mango
How do I find the pastebin on the AWS website?I'm signed to the AWS website.
Thanks.
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net
Your question makes no sense. There is no pastebin on the AWS website and you don't sign in to anything.

Click the link in the quote below:
said by OBi1FW:

If you don't like to use bspatch, here is link to the web flashable binary, naf3 version: »pastebin.ca/3952393

Then navigate to the URL on the pastebin.ca site to download the firmware.
cqarlo932
join:2010-07-06
I start here pastebin.ca 3952393 then this site (»s3.us-east-2.amazonaws.c ··· /naf3.fw) and the amazon aws website comes up. What am I doing wrong?
cqarlo932
to Mango
My error I have the file. How do I change it to a binary file to flash to the Obi100.

Thanks.
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net
You don't need to change the file. From the OBi100's internal web server, System Management >> Device Update >> Firmware Update.
cqarlo932
join:2010-07-06
to Mango
Thanks very much I thought I needed to change the patch to a binary file.
cqarlo932
to Mango
Update was successful but,it looks like once you have deleted your original Google voice account on the adapter Obihai will not let you provision it ever again.
andre2
join:2005-08-24
Brookline, MA

1 edit
to talkbot

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

I attempted to apply the update from the Web Interface. After clicking on "Update", I get a popup saying "Press OK to update the firmware. Please allow 30s for the process to complete.", I click OK, and nothing happens (not even a reboot, or any sign of activity). The fw version is still 2886 (not 2886-naf3). My fw file is correct (originally generated from the bsdiff file, later verified to be identical to the posted fw file).

Edit: I tried naf4. Also, using a different browser (in case my regular browser was blocking something) and flashing the original 2886 firmware that's already installed. Not able to flash anything. I'm pretty sure that I had to manually flash the original 2886 firmware back in 2016, don't know why it no longer works.
naf
join:2017-12-12

3 recommendations

to talkbot
Latest updated bsdiff to patch an original 2886 GUI-uploadable firmware.
This one is better because it succesfully loads all 9 certs. Something was wrong with naf3 that made it stop after #3, which was equifax so nobody cared...

Changes:
1) *add* globalsign cert (root for GIAG3) leaving all previous certs intact including equifax (root for GIAG2) [had to move the certs to the end of the 0x1b844a hunk to make room, change the PEM_read_bio_X509 location and size params to point to that new location, and move table1 and its pointer back a bit in the firmware to make room for the bigger hunk]
2) put in correct fw md5s, so its web-uploadable and passes boot-time check
3) change version string to 2886-naf4

jsolo1
Premium Member
join:2001-07-01
PRIL
@Naf, thanks for keeping on this.

Have you been able figure out how to unblock firmware downgrades. This wold allow folks to load an older firmware where plain text authentication still works.
smithduluth
join:2006-10-26
Duluth, MN
to cqarlo932
Not correct... I have just today activated 3 OBI100's on Google Voice via Obitalk that I had removed from GV last week when they no longer worked.
They now are working again as I had posted on another forum today.
LowK3y
Premium Member
join:2018-01-05
Columbus, OH
to jsolo1
Does that actually still work? If so, a re-certed version of that would be nice.
naf
join:2017-12-12
to jsolo1
What version of the firmware do the plaintexters still use?
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net
1.3.0 Build 2824. It does not appear to be available for download any longer. PM me your email address if you want a copy.
naf
join:2017-12-12
said by Mango:

1.3.0 Build 2824. It does not appear to be available for download any longer. PM me your email address if you want a copy.

PM sent
Expand your moderator at work
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net

1 edit

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

Deleted.
LowK3y
Premium Member
join:2018-01-05
Columbus, OH

1 edit

1 recommendation

to naf
Curious if this is still relevant?

»Recent Google Voice / OBi issues

It seems Google just turned off SSLv3 support, so only TLS is supported.
I just fired up Wireshark and my 2824 firmware Obi100 is trying to connect with SSLv3, but Google is saying "lol no."

Is this the final nail in the coffin for pre-OAuth firmware + GV?

OBi1FW
join:2017-12-27
Vienna, VA

3 edits
to naf
Updated: »obi1.s3-website.us-east- ··· aws.com/
azrobert
join:2015-02-07
Fountain Hills, AZ

2 recommendations

to naf
I posted the download link for 2824, but my post was removed. Did I break some rule?

The URL for 2824 has OBi, not OBi110.
LowK3y
Premium Member
join:2018-01-05
Columbus, OH
Yes Mods! azrobert2 linked to official FW from Obihai that is not modified in any way.

Trev
AcroVoice & DryVoIP Official Rep
Premium Member
join:2009-06-29
Victoria, BC
to azrobert
Yeah you can't link directly to firmware. You'd have to link to an Obihai page or a page on their forum that has the link to the firmware. Click the Rules button at the top of the page and you can see it there.
LowK3y
Premium Member
join:2018-01-05
Columbus, OH

2 edits
Deleted.

Trev
AcroVoice & DryVoIP Official Rep
Premium Member
join:2009-06-29
Victoria, BC

1 recommendation

Don't shoot the messenger, I'm not a mod. Just answering the question if a rule was broken is all.
LowK3y
Premium Member
join:2018-01-05
Columbus, OH
Personally, I'm thankful for the clarification, I thought it was only modded stuff you couldn't directly link to.

Thanks!
azrobert
join:2015-02-07
Fountain Hills, AZ
to Trev
Thanks

See:
»www.obitalk.com/forum/in ··· msg86434
taoman
Premium Member
join:2013-09-13
Seattle, WA
to talkbot
Here's a link for a post with the 2824 firmware:

»www.obitalk.com/forum/in ··· msg86434
naf
join:2017-12-12
to talkbot
So if the goal here is to mitigate against the chance that obitalk will cease to send oauth refresh tokens to our devices, wouldnt an easy way to take obitalk out of the loop be to just use the password field as a place to put our own refresh token manually. And then we can just authorize and refresh them with our own client_id (hardcoded into fw)?
naf

3 recommendations

to talkbot
Latest. Not sure how useful any of the old firmware is at this point, but here goes...

Changes:
1) add globalsign cert (root for GIAG3) leaving all previous certs intact including equifax (root for GIAG2)
2) put in correct fw md5s, so its web-uploadable and passes boot-time check
3) remove firmware downgrade check
4) change version string to 2886-naf5

jsolo1
Premium Member
join:2001-07-01
PRIL
to naf
said by naf:

So if the goal here is to mitigate against the chance that obitalk will cease to send oauth refresh tokens to our devices, wouldnt an easy way to take obitalk out of the loop be to just use the password field as a place to put our own refresh token manually. And then we can just authorize and refresh them with our own client_id (hardcoded into fw)?

I think this would be the ideal solution. Creating client_id's and refresh tokens is relatively simple. Obitalk is out of the picture entirely. Still the lingering issue of updating certs if/when they need updating.
naf
join:2017-12-12
But if we don't make every device configure its own unique client_id, then we're just as stuck using the naf (or whatever) website to get a refresh token to install manually as we are with obitalk now...
LowK3y
Premium Member
join:2018-01-05
Columbus, OH
In theory if the older firmware used TLS instead of SSLv3, would it still work with Username/password? What other info is getting passed?
nellie
join:2018-01-06
united state
to naf
this being unsual to me, would you please do a step by step on updating the firmware to this newest firmware. i have an obi100 with 2886 installed. thank you pothound
OBi1FW
join:2017-12-27
Vienna, VA

1 edit

1 recommendation

You can download the already-patched version from here: »obi1.s3-website.us-east- ··· aws.com/
talkbot
join:2017-12-11

1 recommendation

to naf
You need the client id and client secret to obtain tokens and it should not be hardcoded so users can use their own. For the tokens you could compare a flash dump before and after obitalk provisioning and since we control the certificates we can MITM the provisioning. If it is too much trouble to make the API keys dynamic then a patcher script that modifies the firmware and embeds them would work.
naf
join:2017-12-12

1 recommendation

to talkbot

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

said by talkbot:

You need the client id and client secret to obtain tokens and it should not be hardcoded so users can use their own. For the tokens you could compare a flash dump before and after obitalk provisioning and since we control the certificates we can MITM the provisioning. If it is too much trouble to make the API keys dynamic then a patcher script that modifies the firmware and embeds them would work.

Patcher idea is good. That fucking web interface in assembly is a bitch to figure out.
Stewart
join:2005-07-13
to talkbot
said by talkbot:

... since we control the certificates we can MITM the provisioning.

By observing the provisioning, with luck you may find that they are simply using a 'secret' parameter name for the token and you could then use ordinary provisioning files to input the tokens.

If that's not the case, you may be able to provision your own tokens by emulating whatever the Obihai site does.

With yet worse luck, there may be integrity checks and/or a signature that's independent of the TLS, so even an MITM-based modification won't work.
naf
join:2017-12-12

1 edit

2 recommendations

The secret param name is X_GApiRefreshToken (and X_GApiInitAccessToken).

Checking on encryption...

UPDATE: not encrypted. Its just the raw refresh token.
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net

1 edit
Is it possible that the AuthUserName and AuthPassword fields could be somehow repurposed to be used with the client id and secret?

Edit: Doh.
naf
join:2017-12-12

1 edit

1 recommendation

said by Mango:

Is it possible that the AuthUserName and AuthPassword fields could be somehow repurposed to be used with the client id and secret?

You need the username field, for, you know, your username... :-P
but the password field is up for grabs. I was planning on putting the refresh_token there, but if we can provision in the refresh token, then maybe that gets the client_id/secret comma-separated or whatever? have to check length limits...
Stewart
join:2005-07-13
to naf
said by naf:

The secret param name is X_GApiRefreshToken (and X_GApiInitAccessToken).

I wonder whether these params get saved by Backup Configuration and/or loaded by Restore Configuration. Editing a backup file would not be a major hassle for most folks, certainly easier than setting up a provisioning server.

jsolo1
Premium Member
join:2001-07-01
PRIL
Just checked my 200/202 xml backup files. No tokens or secrets. This explains why one still has to use obitalk to provision a google account even after restoring the xml file.
Stewart
join:2005-07-13
said by jsolo1:

Just checked my 200/202 xml backup files. No tokens or secrets.

Not being saved doesn't necessarily mean that they aren't restored. Aren't passwords not saved yet are accepted in the XML file?

And, it doesn't necessarily mean that tokens are not accepted in a normal provisioning file pulled by HTTP(S).
naf
join:2017-12-12

2 edits

2 recommendations

said by Stewart:

Not being saved doesn't necessarily mean that they aren't restored. Aren't passwords not saved yet are accepted in the XML file?

And, it doesn't necessarily mean that tokens are not accepted in a normal provisioning file pulled by HTTP(S).

Token restored from backup config = no
Token ITSP provisioned = yes

I couldn't get it to *un*set though. Had to reset to go back to the obitalk provisioned token.
naf

1 recommendation

unfortunately obi registered their client_id as a web-style app, not a standalone-style app, so I can't just use *their* client_id to authorize and get a refresh token in the offline mode. that woulda been fun. o well, we can just mod the fw to use a different client_id.
talkbot
join:2017-12-11

1 recommendation

Can you change X_UserAccess attribute of those keys so they are saved/restored during backup?
naf
join:2017-12-12

6 recommendations

to talkbot
Here's a bsdiff to update 2886 to be able to (optionally) use a user-provided client_id/client_secret/refresh_token to oauth for gv.

To use, just set the AuthPassword field, in a format like this (suspiciously similar to the exact data posted to the oath token service):
client_id=<your own client id>&client_secret=<your own secret>&refresh_token=<token you get from oauth>&grant_type=refresh_token
 
If AuthPassword is defaulted/blank, everything goes back to the obi client/secret with the obitalk-provided token way.

Changes:
1) add globalsign cert (root for GIAG3) leaving all previous certs intact including equifax (root for GIAG2)
2) put in correct fw md5s, so its web-uploadable and passes boot-time check
3) remove firmware downgrade check
4) oauth token request override
5) change version string to 2886-naf7
naf
Now if someone would just remind me how to get a freshly reset box out of "Service Not Configured" without using obitalk, we'd be all set...
andre2
join:2005-08-24
Brookline, MA
to naf
.
Stewart
join:2005-07-13
to naf
said by naf:

Now if someone would just remind me how to get a freshly reset box out of "Service Not Configured" without using obitalk, we'd be all set...

I don't know the answer, but since you have gained control over the certificates, can't you just MITM the connection from Obitalk and see what's needed?
LowK3y
Premium Member
join:2018-01-05
Columbus, OH
to naf
Wow! That was fast, any rules regarding our (your own) client id and secret?
naf
join:2017-12-12
to Stewart
said by Stewart:

I don't know the answer, but since you have gained control over the certificates, can't you just MITM the connection from Obitalk and see what's needed?

Oyeah...

BTW, you don't even need modded certs for that, just download the config file specified by the provisioning URL and un-AES it with the key/iv in the provisioning URL.
naf

1 edit

1 recommendation

to LowK3y
said by LowK3y:

Wow! That was fast, any rules regarding our (your own) client id and secret?

Just that you need to authorize yourself to have the google talk scope.
And its a lot easier if your oauth client has an application type of 'other' instead of web, so you dont have to have a web redirect url.

To grab an authorization code, just browse to something like this:

»accounts.google.com/o/oa ··· ient_id=

Then trade that for a refresh key:
curl \
 --request POST \
 --data "code=<authorization code>&client_id=<your client id>&client_secret=<your client secret>&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code" \
 https://accounts.google.com/o/oauth2/token
 
LowK3y
Premium Member
join:2018-01-05
Columbus, OH

1 recommendation

This is essentially the same thing that's being done here, right?

»nerdvittles.com/?p=19169

I'm thinking that a guide using the web-based tool(s) might be easier for most to understand.
naf
join:2017-12-12
said by LowK3y:

This is essentially the same thing that's being done here, right?

Yep. [Never seen the oauth playground before. Pretty slick. Too bad they don't put fucking google talk on the pretty dropdown]

kevinds
Premium Member
join:2003-05-01
Calgary, AB
to talkbot
OAuth is all about just getting rid of the user/pass as keys to the account correct?

Are 'app passwords' acceptable with these higher security rules?
OZO
Premium Member
join:2003-01-17
to naf
said by naf:

To grab an authorization code, just browse to something like this:

»accounts.google.com/o/oa ··· ient_id=

Then trade that for a refresh key:

curl \
 --request POST \
 --data "code=<authorization code>&client_id=<your client id>&client_secret=<your client secret>&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code" \
 https://accounts.google.com/o/oauth2/token
 
How to find out what "client_id" and "client_secret" do I have? It looks like my Google account and its password doesn't work here...
LowK3y
Premium Member
join:2018-01-05
Columbus, OH

3 edits
OZO, I haven't tried it yet, but looking at the latest diff and the directions there, I think you're supposed to make up your own client ID and secret. I'd suggest looking at this

»nerdvittles.com/?p=19169

Starting with the section 'Obtaining Your Google Voice OAuth 2 Credentials for XiVO'

save your made up Client ID and Secret (notepad maybe?) and follow the guide there up to and including step 6, but use your made up ID and Secret, save the refresh token provided to you too, set up the line (like above, under the diff download) and put it in the AuthPassword field.

***I THINK.***

jsolo1
Premium Member
join:2001-07-01
PRIL
to LowK3y
said by LowK3y:

This is essentially the same thing that's being done here, right?

»nerdvittles.com/?p=19169

I'm thinking that a guide using the web-based tool(s) might be easier for most to understand.

These instructions are not quite correct. They make use of an already created client_id.

To generate your own, follow the instructions in the first post of this thread - »[Asterisk] OAuth 2.0 Support for Asterisk 13 or Asterisk 14 .
LowK3y
Premium Member
join:2018-01-05
Columbus, OH
In my directions to OZO, I'm saying to make your own up instead of using the ones there. I don't think you have to generate them. I could be wrong.

I was using the specific post your pointing to ask if this was essentially the same steps that needed to be taken.

jsolo1
Premium Member
join:2001-07-01
PRIL
The client_id is associated with a developer account. I suppose it's not 100% required to make your own, but I did chose to do so any way so it's not associated with any other google account.
LowK3y
Premium Member
join:2018-01-05
Columbus, OH
Well, now you have me wondering if we can make them up.
LowK3y

1 edit
to jsolo1
To be honest, I wouldn't be surprised if the ones on that post would work, it's for access to Google Talk APIs after all.

*I don't recommend it*
OZO
Premium Member
join:2003-01-17
to jsolo1
Thank you, jsolo1 See Profile. I'll keep that in mind if (and only "if") I decide to update OBi to the new firmware. So far I still use OBi100 with the old build 1.3.0.2824, that can use old user/password login combination. But frankly, I don't feel any need for OAuth2 for myself and try to keep it this way till I can
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net
I'm curious to hear 2824 still works with Google Voice for you. I realize Google has dozens/hundreds of servers in various versions, but I would have assumed by now all would require TLS. I believe they started that rollout in 2014.
QBZappy
join:2012-05-10

1 recommendation

to Mango

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

said by Mango:

I'm curious to hear 2824 still works with Google Voice for you. I realize Google has dozens/hundreds of servers in various versions, but I would have assumed by now all would require TLS. I believe they started that rollout in 2014.

Very interesting thread. It might come in handy in the future if my OBi110 (GV) no longer works with user_name/password. I've been using this version for years. It's been set and forget. It's been working flawless. In my case I don't see any need to update.

SoftwareVersion 1.3.0 (Build: 2824)
jgmxyz
join:2011-07-25
Springfield, MA
to talkbot
You guys are geniuses! I just bought a ten dollar "testing" obi100 from ebay, and when it comes, I'm going to load the pre-OAUTH (2824) firmware in it and see if it connects with just the user name and password. Of course, my old obi100 has been connecting just peachy for at least a couple of weeks with the latest "stock" firmware (2886) too, so, does anyone know why the un-modded obi firmware is now connecting OK? BTW, was naf ever a sailor, or a cavalry trooper?

Re. using the pre-OAUTH firmware, if one is using a "throwaway" google account, why should anyone, including me, care if user name and password are sent "plain text" or otherwise, un-encrypted?
Expand your moderator at work
jgmxyz
to naf

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

said by naf:
said by Stewart:

I don't know the answer, but since you have gained control over the certificates, can't you just MITM the connection from Obitalk and see what's needed?

Oyeah...

BTW, you don't even need modded certs for that, just download the config file specified by the provisioning URL and un-AES it with the key/iv in the provisioning URL.
Could someone please translate this into something that I (and other non-geniuses) might be able to understand?
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net

1 recommendation

to jgmxyz
said by jgmxyz:

why should anyone, including me, care if user name and password are sent "plain text" or otherwise, un-encrypted?

Although they are stored on your device in a retrievable format, they are encrypted via SSL/TLS when sent to Google.

You don't care about this if you configure your device with its internal web server. It's just like configuring any SIP-based provider. As long as you have a properly-configured firewall and good network security practices, you're safe.

Google was concerned that so many people's usernames and passwords were stored in OBiTALK's servers. Since most people didn't use throwaways, the unlikely event of a breach would mean the attackers would gain access to not only Google Voice accounts, but Gmail and all other Google services. That is why the decision was made to switch to OAuth2.
jgmxyz
join:2011-07-25
Springfield, MA
Thanks for the reply. Does my old HT286 that I am connecting to the Simonics GVGW using SIP encrypt the user name and/or password? And why is the un-modded 2886 firmware now connecting to Google Voice OK, and has been for weeks?
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net
said by jgmxyz:

Does my old HT286 that I am connecting to the Simonics GVGW using SIP encrypt the user name and/or password?

Strictly speaking it hashes it with MD5 digest authentication (Google it if you're curious). Hashes are one-way, encryption is two-way.
said by jgmxyz:

And why is the un-modded 2886 firmware now connecting to Google Voice OK, and has been for weeks?

Google rolled back their certificate changes for an unknown reason. It's speculated this is temporary.

kevinds
Premium Member
join:2003-05-01
Calgary, AB

1 recommendation

to Mango
said by Mango:

Since most people didn't use throwaways, the unlikely event of a breach would mean the attackers would gain access to not only Google Voice accounts, but Gmail and all other Google services. That is why the decision was made to switch to OAuth2.

That is why I would like to know if 'app passwords' are an acceptable trade-off from OAuth2..

If the user-pass gets leaked, it won't give access to the account..
jgmxyz
join:2011-07-25
Springfield, MA
to Mango
Thanks for the reply. I, like most folks, use MD5sums to verify the integrity of various downloads. It's easy from the Linux command line. So does this mean that our SIP credentials can be wiresharked and then easily read?

kevinds
Premium Member
join:2003-05-01
Calgary, AB
said by jgmxyz:

So does this mean that our SIP credentials can be wiresharked and then easily read?

They'll be salted, so not easily, but it isn't impossible.

MD5 for passwords is basically considered broken.. MD5 for downloads is still acceptable, depending on what you are doing, but there are better choices.. Download sources have not been providing the MD5 hashes for files the last couple years (I noticed them not being posted in 2017)
jgmxyz
join:2011-07-25
Springfield, MA
I'm thinking that some of my recent downloads came with MD5s. My take is that MD5 might not be good for "secrecy" but is still useful for verifying the integrity of downloads, n'est-ce pas?
Stewart
join:2005-07-13
said by jgmxyz:

I'm thinking that some of my recent downloads came with MD5s. My take is that MD5 might not be good for "secrecy" but is still useful for verifying the integrity of downloads, n'est-ce pas?

It's fine for confirming that a few bits weren't corrupted by defective hardware, or that a software bug didn't drop a byte or a block.

But, it appears that a well-equipped malicious attacker can add malware to the download, along with carefully crafted data (that won't be executed), such that the MD5 is the same as the original download. See 'Collision vulnerabilities' in »en.wikipedia.org/wiki/MD5 .
talkbot
join:2017-12-11
to naf
Where do you get the key/iv isn't it stored in $SPRM0/$SPRM1?
naf
join:2017-12-12

2 recommendations

said by talkbot:

Where do you get the key/iv isn't it stored in $SPRM0/$SPRM1?

Ya, just point the ConfigURL at your own server with those as params to see their values.
Anon689bf
@comcast.net

1 recommendation

Thank you very much, gentlemen! I just updated my Obi100 with the naf5 modded firmware, and configured it for GV using the Obitalk portal. The Obi portal gave me some crap about the Obi100 and Obi110 being EOL and that I should "upgrade"...and here is their message:

" Configuration has been updated successfully.
Device Configuration - OBi100
The OBi100 and OBi110 has reached it's (sic) end of life (EOL) status and are no longer supported.
Please upgrade to a more recent OBi device to receive support.

Recommended devices to upgrade to:
OBi200
OBi202"

SUCCESS! The Obitalk portal configured my Obi100 OK, and it now works peachy keen with GV! Does anyone have the correct Obihai address to which I may mail the required F-YOU postcard?

B.T.W., I bsdiff patched (newcerts5.fw.bsdiff) the "stock" 2886 FW, and I then compared MD5sums with the linked naf5.fw download and both had the same MD5, so you can safely use the naf5.fw download-no need to bsdiff patch yourself. (here is the correct MD5: 94705c3425dd5b7864e86c8537527a99 naf5.fw) I really enjoyed "sticking" it to Obihai, so THANKS AGAIN you reverse engineering wizards!
talkbot
join:2017-12-11
to naf
Oh, just ask nicely? Classic.
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net
Today out of curiosity I installed 2824, reset its configuration, turned on less secure apps, and tried to configure the OBi with a username and password. I got the typical "Backing Off (1s):TCP connection to 74.125.28.125 failed" error. I tried several different DNS servers which returned different IP addresses for Google Talk, but all produced the same error.

So, at least in my specific case, 2824 doesn't work for Google Voice. If there's something I missed, I would be interested to know.
naf
join:2017-12-12

1 recommendation

said by Mango:

So, at least in my specific case, 2824 doesn't work for Google Voice. If there's something I missed, I would be interested to know.

Im with you. I don't see how 2824 works for anyone today.

jsolo1
Premium Member
join:2001-07-01
PRIL
to Mango
@Mango

Looks like the solution in »Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion is the best. Generate your own oauth tokens and away you go.
azrobert
join:2015-02-07
Fountain Hills, AZ
to naf
I updated my OBi110 with the naf7 firmware. The OBi110 System Status page shows software version 2886-naf7. The OBi110 connected to GV and I successfully placed a call. Great!

I then added my own clientid/pw and refresh token to the GV AuthPassword and the again OBi110 connected.

I then changed several characters in the clientid/pw and refresh token, thinking the OBi110 should fail to connect, but it still connected to GV. It seems the firmware is ignoring the AuthPassword. Below is the character string I used. What am I doing wrong?

I did not delete the GV definition and re-define. I just added the PW. I have OBiTalk Provisioning disabled, so I shouldn't be reverting back to a blank PW.

I used RonR's instuctions for Clientid and refresh token here:
»[Asterisk] OAuth 2.0 Support for Asterisk 13 or Asterisk 14

Thank you for sharing the FW with the forum!

client_id=xxxxxxxxxxxx-xxxxxxxxxxxxxxxpfc7p3psnq3otrdqr.apps.googleusercontent.com&client_secret=xxxxxxxxxxxxnVxjQgdM3HMW&refresh_token=1/xxxxxxxxxxxxxxx0jSWMbxJB_37Xi5Wz4XiqlpP6Jd7&grant_type=refresh_token
 
naf
join:2017-12-12

1 recommendation

It will keep using the old access_token until it is overwritten by a token refresh. I would force a token refresh by going to google security and removing obihai's access to gtalk and rebooting the device.

Take a look at the syslog when coming back from the reboot. Token refresh should look something like this if everything went ok:
<7> GAPI:Refreshing tk
<7> Using AuthPassword as token request override
...
<7> GAPI:refresh tk ok
 

If its not using the AuthPassword, the second line would be something like:
<7> No AuthPassword. Using original obitalk-supplied client/secret/token
 
azrobert
join:2015-02-07
Fountain Hills, AZ
Syslog showed an error and the OBi110 didn't connect. I then replaced the PW with the real credentials and syslog showed override with PW and it connected, so it looks like it's working. I didn't change anything, so maybe it was a timing problem. Thanks again!

hapollo
join:2007-05-13
WesterOS
to Mango
said by Mango:

So, at least in my specific case, 2824 doesn't work for Google Voice. If there's something I missed, I would be interested to know.

So, will you upgrade to 2886 to use naf's fw?

Like you, my Obi110 still running 2824 but built an asterisk server early last year to take back control of my 110.

Might be worth making the jump now that naf has custom FW here.
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net
I don't really use Google Voice except for experimental purposes, but I have been running naf's firmware since he published it to help in testing. I say "help" although I haven't really done anything because it's been 100% stable.
naf
join:2017-12-12

5 recommendations

to OBi1FW
said by OBi1FW:

You can download the already-patched version from here: »obi1.s3-website.us-east- ··· aws.com/

Nice website
OBi1FW
join:2017-12-27
Vienna, VA

3 recommendations

Nice firmware

hapollo
join:2007-05-13
WesterOS
said by naf:
said by OBi1FW:

You can download the already-patched version from here: »obi1.s3-website.us-east- ··· aws.com/

Nice website
said by OBi1FW:

Nice firmware

Great work guys! Appreciate the work you all put into this.
nellie
join:2018-01-06
united state

1 edit
hi i have my obi firmware update page up, and i have the new firmware in my downloads. will you explain exactly what we do next. i'm afraid of ending up with a brick. thank you nellie
evuraan
join:2005-03-29
Bothell, WA
to OBi1FW
Bravo! kudos! Great work guys!

jsolo1
Premium Member
join:2001-07-01
PRIL
to nellie
You flash it through the web UI just like any other firmware. Probably a good idea to back up settings first, just in case.
smithduluth
join:2006-10-26
Duluth, MN

1 recommendation

to talkbot

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

2 of my obi100's reconnected ok after flashing NAF7. 1 required GV to be deleted and reinstalled to get reconnected. Glad I found this group!
nellie
join:2018-01-06
united state
to talkbot
hi what exactly do i do on the firmware update page. on the download page how to transfer. your prefered method. thank you nellie
smithduluth
join:2006-10-26
Duluth, MN

1 recommendation

"Choose File" the firmware file in whatever directory you downloaded it to. Press "Update" and press "Yes"
cqarlo932
join:2010-07-06

1 recommendation

to talkbot
Great work to you reverse engineering wizards and making the FW easy for us to update our Obihai's. Thanks again.
tazmo8448
join:2011-11-29
Columbia, SC

1 recommendation

to talkbot
you guys are great no doubt about it...
tazmo8448

1 edit
thanks fellas
tazmo8448

1 edit
removed post (inappropriate area)
nellie
join:2018-01-06
united state
to smithduluth
thank you. i was thinking more steps were required. nellie
azrobert
join:2015-02-07
Fountain Hills, AZ
to naf
said by naf:

Now if someone would just remind me how to get a freshly reset box out of "Service Not Configured" without using obitalk, we'd be all set...

Have you had any progress on this? I tried restoring the config from backup, but it didn't work.

Thanks
Anon12e42
@chtrptr.net
GV supports cnam for every customer. I believe it can be switched on by the ata fw. Anyone looked into this?
taoman
Premium Member
join:2013-09-13
Seattle, WA

1 recommendation

said by Anon12e42 :

GV supports cnam for every customer.

Care to back up that statement with any evidence? AFAIK, Google Voice has never supported CNAM.
Anon12e42
@chtrptr.net
My previous GV voip setup (GVjackapp on MagicJack hardware) displayed the caller name on the phone. That is my only evidence. Sorry, I should have started with that.

jsolo1
Premium Member
join:2001-07-01
PRIL
^^It sounds like the GVjackapp did the lookups.

---------------
»www.pcphonesoft.com/gvja ··· ils.html

CNAM Caller ID Name Reverse Number Lookup
:::Using the national CNAM/LIBD database, caller id name reverse number lookup service is available for incoming calls from US/Canada phone numbers. Look ups are just $0.01 each available in $10 prepaid increments.
naf
join:2017-12-12

3 edits

1 recommendation

to azrobert
said by azrobert:
said by naf:

Now if someone would just remind me how to get a freshly reset box out of "Service Not Configured" without using obitalk, we'd be all set...

Have you had any progress on this? I tried restoring the config from backup, but it didn't work.

Thanks
Yes. GV configuration requires the secret X_GApiRefreshToken and X_GApiInitAccessToken to be set, so if you want to live life without obitalk (which you dont have to because it still exists, you know...) you can just self-provision them. Their values don't matter cause they aren't used with 2886-naf7 AuthPassword override, so just point your ITSP ConfigURL temporarily at an xml file that looks like this (assuming SP1):

<?xml version="1.0" encoding="UTF-8"?>
<!--OBi Configuration File-->
<ParameterList>
<Object><Name>VoiceService.1.VoiceProfile.1.Line.1.</Name>
<ParameterValueStruct>
<Name>X_GApiRefreshToken</Name>
<Value>blam</Value>
</ParameterValueStruct>
<ParameterValueStruct>
<Name>X_GApiInitAccessToken</Name>
<Value>blorg</Value>
</ParameterValueStruct>
</Object>
</ParameterList>
 

jsolo1
Premium Member
join:2001-07-01
PRIL
What goes for "blam" & "blorg"?

I assume this xml is something that has to be hosted on some web server? Some actual url accessible via internet? I suppose possible to run a local web server too.

Wonder if this can be used on a 200 series boxes to bypass obitalk entirely too?
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net
I think he means literally "blam" and "blorg" will work.

jsolo1
Premium Member
join:2001-07-01
PRIL
Nice! What needs to be changed in this line for sp2/3/4?

VoiceService.1.VoiceProfile.1.Line.1.
naf
join:2017-12-12
said by jsolo1:

Nice! What needs to be changed in this line for sp2/3/4?

SP2 should be "VoiceService.1.VoiceProfile.1.Line.2."
Anon12e42
@chtrptr.net
to jsolo1
This is what it was doing because I never paid for any extra services and unknown incoming calls did display the state they were calling from. Both really nice features.

Caller ID with Name / Location
:::The caller's name and number is sent to your phone after the first ring. If the name cannot be located in your online Contacts (or Speed Dial list if you have the Professional version) the caller's location (state or country) is displayed.

I'm guessing the Obi doesn't have access to my contacts. Maybe in the future?

kevinds
Premium Member
join:2003-05-01
Calgary, AB
said by Anon12e42 :

I'm guessing the Obi doesn't have access to my contacts. Maybe in the future?

They have it now, but it is a paid addon from Obihai.

jsolo1
Premium Member
join:2001-07-01
PRIL
to naf
said by naf:

SP2 should be "VoiceService.1.VoiceProfile.1.Line.2."

Tried this with a obi202, no go. Looks like it's ignoring the URL specified in ConfigURL when the SignalingProtocol is set to google voice. Am I right to assume there's some flag in there that you changed in the 1xx firmware so it works?
naf
join:2017-12-12

1 recommendation

said by jsolo1:

Tried this with a obi202, no go. Looks like it's ignoring the URL specified in ConfigURL when the SignalingProtocol is set to google voice. Am I right to assume there's some flag in there that you changed in the 1xx firmware so it works?

Hold up hold up hold up. I don't know what you're trying to accomplish on a obi202 at all, because (as far as I know) you don't have a fw that can use oauth tokens that aren't provided by obitalk, so unless you can get a *valid* refresh token using obi's client_id/secret, you probably shouldn't be writing anything to X_GApiRefreshToken (if that even exists on the different fw/sw of obi202)

Also, it doesn't seem like you're even talking about the right setting for ITSP provisioning...

So... in conclusion... "no"?

jsolo1
Premium Member
join:2001-07-01
PRIL
^^My ultimate goal is to eliminate any need for obitalk portal for any kind of provisioning.

Under service providers/itsp profile {x}/general is the "SignalingProtocol" setting options are sip and google voice. For gv it makes sense that this be set to google voice, right?

Aside from that I see your point. Firmware would need to be modded so it could use non obi tokens.
divx_2
join:2005-07-01

2 edits
to naf
I have tried to follow your steps and decompress deflated streams starting at 0xf3cee in newcerts7 patched FW binary. Most streams decompressed fine after prepending them with 10 byte header except one located at 0x168d52. My gzip complains about length error. After making change 0x7ccdb -> 0x7ccdc, no complain from gzip anymore. Not sure if its matter.

Are you thinking about making a patch for OBi2xx to use self generated OAuth credentials?
naf
join:2017-12-12

1 edit
said by divx_2:

I have tried to follow your steps and decompress deflated streams starting at 0xf3cee in newcerts7 patched FW binary. Most streams decompressed fine after prepending them with 10 byte header except one located at 0x168d52. My gzip complains about length error. After making change 0x7ccdb -> 0x7ccdc, no complain from gzip anymore. Not sure if its matter.

You are of course right about the uncompressed length of 0x168d52. Apparently I fat-fingered it. Luckily I'm let off the hook by the inflate routine at 0x1a30be/0x1ff68e not checking
said by divx_2:

Are you thinking about making a patch for OBi2xx to use self generated OAuth credentials?

I don't have an obi2xx, but if someone else is working on one im sure i could chip in some ideas.

...and the patch should be 100x easier since its dynamically linked and IDA supports ARM so you dont have to fucking script putting the string constants into the fucking incorrect disassembly from mipsxdis
naf

1 edit
said by naf:

I don't have an obi2xx, but if someone else is working on one im sure i could chip in some ideas.

And here's the hint: if you look in /obi/obiapp at the token refresh sub at 0xD9760, the obitalk refresh token is in [R7,#0x3C]. The AuthPassword should be in [R7,#0x38]. Just use that instead of all that sprintf concatenated crap.
Soyel19
join:2018-01-16

2 recommendations

to naf
My Obi110 Is working with Google Voice again, thank you for making me the owner of my own device!

A few years back when GV stopped working and I made the irreversible 2886 firmware upgrade, I tried to use the Obihai portal, not only they wanted me to share personal information, when I enabled access to my device, without any previous warning, I was requested to pay to have the service activated. I didn't and since then it got stuck in "Service not configured".

So I updated the firmware to naf7 and was dreading to go to the portal again, but today I did the XML file trick and I was spared of that, Thank you!
azrobert
join:2015-02-07
Fountain Hills, AZ
to naf
Thanks for the code, but I'm having problems getting this to work on my OBi110. I'm an XML novice and not sure I created the file correctly. I used Notepad to create the file. I set the "File Name" to file.xml and "Save as Type" to All Files.

I put the XML file on a dd-wrt router's NAS drive, but I don't know how to code the ConfigURL I can access the NAS drive in Windows using File Explorer. The path under Network is Router_Name -> USB_Storage -> file.xml
I tried the following in ConfigURL and both failed:
http://Router_Name/USB_Storage/file.xml
http://192.168.1.1/USB_Storage/file.xml
 

I also pointed to an OBi config backup file, so I could see if it worked. It didn't.

The OBihai Forum provides XML files to update digit maps for foreign countries. These XML files are applied by using the Restore Configuration option under Device Update. I tried the Restore function with your XML file, but it also didn't work. The SP1 status is "Service Not Configured".

I didn't know if I should change Encoding on the XML file, so I tried both ANSI and UTF-8.

I manually configured GV on the OBi110 SP1 after a factory reset before trying the above with the following 2 changes:
SignalingProtocol: Google Voice
AuthUserName: My_UserID@gmail.com

Please help!

jsolo1
Premium Member
join:2001-07-01
PRIL
You can't do it that way.

Take a look at this link, scroll down to procedure.
»www.dd-wrt.com/wiki/inde ··· B_server

Using that example you can upload your file to the jffs folder. Depending how you have your ftp set up it'll be accessible directly or you'll have to move it there manually.

You can test if the url work by pasting it into a browser. If the xml is opened or you're prompted to download, then you should be good to go. Perform the test using incognito mode or a different browser. With asuswrt firmware I'm prompted to login first before I can access the file. Don't recall how ddwrt works as I don't have it on any routers in the vicinity.
thUzu7AkU
Premium Member
join:2014-05-05
Beverly Hills, CA
to OBi1FW
said by OBi1FW:

You can download the already-patched version from here: »obi1.s3-website.us-east- ··· aws.com/

@OBi1FW Are you able to also host dummy XML files for SP1 and SP2 to use for ITSP ConfigURL, as per @naf's post? Thanks.
Reference: »Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion
azrobert
join:2015-02-07
Fountain Hills, AZ
to naf

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

Is there a reason why the Restore Configuration procedure isn't working with your xml file? ITSP Provisioning is getting too complicated for me. I hate to give up now. This is the last step I need to totally get off OBiTalk.
JimS
join:2018-01-15
Can I upload the XML file using the restore configuration? I tried Obitalk portal and loading the token directly on the obi110 web page without any luck. I already loaded the patched firmware which seemed to work fine and it now report the name of the patched firmware.
naf
join:2017-12-12

1 recommendation

said by JimS:

Can I upload the XML file using the restore configuration? I tried Obitalk portal and loading the token directly on the obi110 web page without any luck. I already loaded the patched firmware which seemed to work fine and it now report the name of the patched firmware.

No, setting the oauth token doesn't work when restoring a backup.
Either ITSP provision it, or just use obitalk for the initial provision (and then turn it off and revoke its access to gtalk and just use AuthPassword override if you like)

I second the idea that OBi1FW See Profile could add 2 static xml files to make it easier for those that might not have http servers handy.
azrobert
join:2015-02-07
Fountain Hills, AZ

2 recommendations

Success!!!!! I found a super easy free Windows http server and hosted the xml file myself. After defining the ConfigURL and rebooting, the status on SP1 became Backing Off. I added my GV credentials and it connected.

The http server is Mongoose. Download the binary here:
»cesanta.com/binary.html

Store the binary in the same folder as your xml file and double click on it. That's it! All the files in the folder are available on port 8080.

ConfigURL: http://192.168.1.100:8080/file.xml
 
JimS
join:2018-01-15
to naf
I tried Obitalk with no luck. I think I tried with and without also putting a refresh token in where the device web page has a spot for password. What do you mean by "just use AuthPassword override"? A step by step would be really helpful.

As an alternate I have a couple boxes with LAMP that I think I could use to serve the xml file.

jsolo1
Premium Member
join:2001-07-01
PRIL

1 recommendation

Looks like the obi supports tftp too.

»tftpd32.jounin.net/

Tftp is similar to ftp but without the authentication part. Very easy to set up. Once the keys are in place there should be no need for further action unless the unit is factory reset.
divx_2
join:2005-07-01
to naf
said by naf:

And here's the hint: if you look in /obi/obiapp at the token refresh sub at 0xD9760, the obitalk refresh token is in [R7,#0x3C]. The AuthPassword should be in [R7,#0x38]. Just use that instead of all that sprintf concatenated crap.

Thanks. If I understand it correctly, after the patch it'll either use obi's access_token, or self generated refresh_token. It won't be able to refresh obi's token, unless I find a space to check the length of AuthPassword and refresh token conditionally.
naf
join:2017-12-12
said by divx_2:

Thanks. If I understand it correctly, after the patch it'll either use obi's access_token, or self generated refresh_token. It won't be able to refresh obi's token, unless I find a space to check the length of AuthPassword and refresh token conditionally.

The strategy I used in naf7 was to leave access_token reads untouched, and just do the switch on the access_token write based on the AuthPassword length (null/zero length AuthPassword --> use the obitalk-provisioned client_id/secret/refresh_token to get the access_token, else just use the AuthPassword itself as the access_token request).

P.S. if you want to talk OBi20x patching, lets move over to the other thread »Obihai OBi20x/30x + OBi1000 + OBi50x + OBi2000 firmware mods
OBi1FW
join:2017-12-27
Vienna, VA

2 recommendations

to naf
said by thUzu7AkU:

@OBi1FW Are you able to also host dummy XML files for SP1 and SP2 to use for ITSP ConfigURL, as per @naf's post? Thanks.

said by naf:

I second the idea that OBi1FW See Profile could add 2 static xml files to make it easier for those that might not have http servers handy.

Ok, I would be glad.

»obi1.s3-website.us-east- ··· TALK.xml

I made one file that sets both SP1 and SP2. It's ok if you want to use one of those for SIP.

Today afternoon I am working on an interactive tutorial to generate client_id, client_secret, and refresh_token.
JTS33
join:2003-05-03
USA

1 recommendation

to talkbot

remove firmware downgrade check

So there should be no reason for someone on pre-Oauth firmware to not try this 2886-naf7 firmware, because they can always revert back to 2824 or earlier if they wanted to?

Seems like a good way to get any other improvements made by Obi to the firmware even if you don't use GV currently.
OBi1FW
join:2017-12-27
Vienna, VA

3 recommendations

to talkbot
Here is the tutorial I made for manual configuration of Google Voice. Corrections are welcome.

»obi1.s3-website.us-east- ··· /OAuth2/

This is not really necessary, yet, because the OBiTALK portal still works, for now. We don't know how/if Obihai is going to respond to the new firmware, nor what Polycom will do with OBiTALK long term. If the portal stops working one day, or if you just don't like to use the portal, you can use this technique.

This is based on instructions posted by naf and RonR (thanks to jsolo1 for the link).

brg
Premium Member
join:2001-01-03
Chicago, IL
to JTS33
said by JTS33:

remove firmware downgrade check

So there should be no reason for someone on pre-Oauth firmware to not try this 2886-naf7 firmware, because they can always revert back to 2824 or earlier if they wanted to?

Seems like a good way to get any other improvements made by Obi to the firmware even if you don't use GV currently.
Ooooo; I guess I saw that earlier out of the corner of my eye, but didn't really let it sink in.

I'm in that camp, still using my pre-Oauth firmware on my Obi100 (2776 at present). None of this has been an issue for me because a while back I started using Bill's GVGW on SP1 and it works so flawlessly that I've not been tempted to try the naf7 FW.

Has anyone actually verified that one can go from 2824 to 2886-naf7 and back again? Your question mark, JTS33, suggests that you aren't positive either...
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net

2 recommendations

said by brg:

Has anyone actually verified that one can go from 2824 to 2886-naf7 and back again?

Yes, I can verify this.

brg
Premium Member
join:2001-01-03
Chicago, IL

2 recommendations

Thanks Mango. Good enough for me...
Gosset
join:2018-01-18
to OBi1FW
This is only a suggestion. As a precaution, perhaps you could disable Auto Firmware Update and clear the FirmwareURL in your XML file.
OBi1FW
join:2017-12-27
Vienna, VA
Well, by default it is already that way. The only way it could be changed is if the user changes it. (Or if OBiTALK changes it, but if they're using the XML file, they probably don't use OBiTALK.)

It's a good suggestion though. I always make sure it's disabled on my OBi.
JTS33
join:2003-05-03
USA
I'm having an issue after updating to naf7 firmware from naf5, after about a day or so, I'll get the "backing off" authentication error with Google Voice and have to reauthenticate through the Obitalk portal. I've tried removing the GV line from my SP1 and re-adding it back on, but same thing happens.

Is this happening to anyone else? Can I try anything else to fix this?
I didn't save the naf5 firmware to revert back though (I rely on OBi1FW's website for my FW), but don't see how this problem could be related to changing to naf7.
naf
join:2017-12-12
said by JTS33:

So there should be no reason for someone on pre-Oauth firmware to not try this 2886-naf7 firmware, because they can always revert back to 2824 or earlier if they wanted to?
...
I didn't save the naf5 firmware to revert back though

One reason would be if you didn't have the old fw to revert back to

if you're going to use obitalk, just Reset Configuration and start over. (you didn't use the xml file to provision bogus tokens did you? they're quite sticky and only for people using AuthPassword override and no obitalk)
naf
to SArcanine
said by SArcanine:
said by naf:
said by naf:

Anybody recognize the crypto functions at offsets 0xC470 and 0xBEC8 in the compressed code stream starting at 0x12f832 in the 2886 fw file?

Nevermind, it looks suspiciously like RC4
That is hilarious. Do a network capture of the tokens being put onto the device. If it is RC4, it should be relatively easy to crack. It would also confirm conventional wisdom that embedded systems security is a joke.
So the RC4 just encrypts the device's private key and obi-signed cert in the OBI100 UNIT INFO section.

What the fuck is the point of encrypting that? If I can read it, I can clone it, encrpytion and all. I can't modify it because its signed, encryption or not. I don't get it.
smithduluth
join:2006-10-26
Duluth, MN
to JTS33
I was having the same problem on one of my Obi100's with Naf7. If I interrupted the power, I had to re-authenticate to get connected again. I deleted it from Obi-talk and re-installed it again and that fixed it. Now I can interrupt the power and it will connect once power is restored. Obviously something had changed by doing this.
divx_2
join:2005-07-01

1 recommendation

to naf
said by naf:

What the fuck is the point of encrypting that? If I can read it, I can clone it, encrpytion and all. I can't modify it because its signed, encryption or not. I don't get it.

Security by obscurity? Did you figure out purpose of the chunk of data located at offset 0x0120 of OBI100 UNIT INFO?

BTW, by modding this structure you can easily enable 2nd phone port on obi200 that is connected to the 2nd pair of conductors of rj11.
naf
join:2017-12-12

1 edit
said by divx_2:

Security by obscurity? Did you figure out purpose of the chunk of data located at offset 0x0120 of OBI100 UNIT INFO?

ya, thats where the encrypted private key and obi-signed cert begin.
naf
to divx_2
said by divx_2:

BTW, by modding this structure you can easily enable 2nd phone port on obi200 that is connected to the 2nd pair of conductors of rj11.

come again?
Stewart
join:2005-07-13
said by divx_2:

BTW, by modding this structure you can easily enable 2nd phone port on obi200 that is connected to the 2nd pair of conductors of rj11.

Holy s**t! They populated all the discrete components for the second SLIC??? That wouldn't make sense unless there was an 'OBi200x' that was sold in huge quantities to some OEM or perhaps a big player like Vonage.

kevinds
Premium Member
join:2003-05-01
Calgary, AB

1 edit
to divx_2
Edit: Doh
kevinds
to Stewart
said by Stewart:

That wouldn't make sense unless there was an 'OBi200x' that was sold in huge quantities to some OEM or perhaps a big player like Vonage.

In which they would use the OBi300/OBi302

jsolo1
Premium Member
join:2001-07-01
PRIL
to kevinds
The obi200 only has one fxs port. Typically, only a single pair is needed per line, so if both pairs are used (4 wires), it's possible to have 2 lines on one cable.
SArcanine
join:2009-11-09
New York
to naf
said by naf:

So the RC4 just encrypts the device's private key and obi-signed cert in the OBI100 UNIT INFO section.

What the fuck is the point of encrypting that? If I can read it, I can clone it, encrpytion and all. I can't modify it because its signed, encryption or not. I don't get it.

It is an open secret that embedded developers do shoddy programming. They create things quickly and the first thing that works without fatal downsides is what goes into production. Designing things well so that they are maintainable or have proper security is an afterthought.

kevinds
Premium Member
join:2003-05-01
Calgary, AB

1 recommendation

said by SArcanine:

Designing things well so that they are maintainable or have proper security is an afterthought.

That costs money, therefore bean-counters want it avoided..
JTS33
join:2003-05-03
USA
to talkbot
said by naf:

if you're going to use obitalk, just Reset Configuration and start over. (you didn't use the xml file to provision bogus tokens did you? they're quite sticky and only for people using AuthPassword override and no obitalk)

When I did a "Reset Configuration" of my Obi110 on the naf7 firmware, I noticed that the config is more like an Obi202, with 2 phone ports specified (ph, ph2) and 4 service provider slots specified (sp1 to sp4) in the DigitMap and things like that. Anyone else notice that? I used Obitalk portal to configure my device for Google Voice.
Brown
join:2018-01-21

1 edit
to JTS33

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

I'm new to Obi's. I'm running stock firmware (1.3.0 2886) on a 110 model. I also used Obitalk to configure for GV. It has been working 100% for 3 weeks. The local ui (192.168.1.5) shows 2 phone ports (sp1 and sp2), 2 service provider profiles (itsp-a and itsp-b), voice service parameters for sp1 and sp2, and 10 user defined digit maps in addition to the sp1 and sp2 maps.

The naf patch allows you to change back to the stock firmware.
nellie
join:2018-01-06
united state
to smithduluth
said by smithduluth:

"Choose File" the firmware file in whatever directory you downloaded it to. Press "Update" and press "Yes"

do i send sp1 to the trash first? nellie
nellie
said by nellie:
said by smithduluth:

"Choose File" the firmware file in whatever directory you downloaded it to. Press "Update" and press "Yes"

do i send sp1 to the trash first? nellie
a simple answer yes or no would be appreciated nellie
smithduluth
join:2006-10-26
Duluth, MN
Does not matter. I didn't.
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net

3 recommendations

to nellie
said by nellie:

a simple answer yes or no would be appreciated nellie

Please test it, record your observations, and let us know what you find.
nellie
join:2018-01-06
united state

1 recommendation

it is working perfectly with google voice connected. i purchased this obi100 on ebay to experiment with, and i want to back it up first. then i will try updating it as is. hope to get to it today. thank you nellie
said by Mango:
said by nellie:

a simple answer yes or no would be appreciated nellie

Please test it, record your observations, and let us know what you find.
iwantgizmos
join:2007-08-29
Chula Vista, CA

1 recommendation

to talkbot
very easy install on obi100. went into obitalk portal to set up GV. works. very pleased. thx

(really unfortunate that obihai not officially update fw for old obi's. shame on you obihai.)
nellie
join:2018-01-06
united state

1 recommendation

to Mango
said by Mango:
said by nellie:

a simple answer yes or no would be appreciated nellie

Please test it, record your observations, and let us know what you find.
hi i updated to the naf7 successfully with all your help. thank you nellie
Anon689bf
@comcast.net

1 recommendation

to Mango
Hi Mango. I too loaded 2824 fw into my an Obi100, and it would not connect using password and username. (backing off) However, I ran across this »productforums.google.com ··· hkqzIIV0 in my travels, and this might explain why the long time 2824 fw users can connect while we "Johhny come lately"s cannot connect!
azrobert
join:2015-02-07
Fountain Hills, AZ
I believe you need to allow less secure apps in your GV account.
Go here:
»accounts.google.com/
Under Sign In & Security click Apps with Account Access
Turn on Allow Less Secure Apps

I'm happy using my own credentials with naf7 fw, so I haven't tested 2824. Please let us know if this works.
Anon689bf
@comcast.net
I turned on support for less secure apps, and I tried the new device "captcha"...no luck so far...but, I am still trying some things...,
andre2
join:2005-08-24
Brookline, MA
to talkbot
I've been running 2886-naf7 successfully for some time now. I've noticed a possible very minor issue in that if power to my OBi100 is cut and later restored, sometimes the power light is blinking green, although the OBi is otherwise working normally. If I reboot the OBi using the web portal, the power light is then constant green. Not sure but I don't remember this ever happening with the official firmware. No big deal. I've had this device for many years so I suppose it could be a hardware issue.

I just tried disconnecting and reconnecting the power and it didn't happen, so it's not 100% reproducible.
shpitz461
join:2012-01-09
Tucson, AZ
to naf
Hi,
I flashed naf7 on my Obi110, system info page shows 1.3.0 (Build: 2886-naf7)
I followed the guide »www.obifirmware.com/OAuth2/
I'm having an issue where the Obi resets itself and SP1 becomes unregistered, and all the data I enter in ITSP and SP1 is wiped off.
1. I set ITSP to the XML and system start, but after 2 reboots it reverts to Disabled
2. After I do all the google oauth steps, on the last page of instructions i set SignallingProtocol to Google Voice and then submit
3. without reboot (I also tried to reboot after every setting change) I go to voice SP1 settings and set username and the auth token. I hit submit then reboot. OBI110 reboots twice, and after I refresh the web interface all the settings are gone.

Any idea what I'm doing wrong?

Thanks!
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net
You probably forgot to disable OBiTALK Service and provisioning. Without that, OBiTALK will keep resting whatever you configure locally.

As for 1., that is expected. The XML unsets urself because it only need be done once.
shpitz461
join:2012-01-09
Tucson, AZ
Thanks for the reply!
How do disable obitalk service? just remove the device from the account?
How do i remove the provisioning? delete the profiles (on obitalk) from device?
azrobert
join:2015-02-07
Fountain Hills, AZ
Disable OBiTalk Auto Provisioning.

System Management -> Auto Provisioning
Under OBiTalk Provisioning
Method: Disabled
mitchflorida
join:2004-09-01
Deerfield Beach, FL

1 edit
Does using Simonics mean that I don't have to worry about this firmware change issue anymore? I do get CNAM with Simonics which is nice, but I have to wait 2 seconds before I say hello when answering a phone call.

kevinds
Premium Member
join:2003-05-01
Calgary, AB

1 edit

1 recommendation

said by mitchflorida:

Does using Simonics mean that I don't have to worry about this firmware change issue anymore? I do get CNAM with Simonics which is nice, but I have to wait 2 seconds before I say hello when answering a phone call.

Correct

Additionally, if you use a SIP phone rather than an ATA, you won't have to wait for the first ring
excalibur26
join:2013-02-02
Weird thing happened last week. After the Obi started working again on its own last December it again stopped. When I went to Obitalk my Obi100 was not shown. I tried the factory reset with the reset button, which is a real pain, and no luck. Then I used the ***8 1 method and that did the factory reset, and then I was easily able to re-provision my Obi.

Now why the unit suddenly disappeared from the Obitalk dashboard I have no idea.

BTW, now using 2886-naf7, and thanks.
Brown
join:2018-01-21

said by excalibur26:
BTW, now using 2886-naf7

Did it disappear from the Obitalk dashboard while you were using naf7?

I'm a little surprised Obitalk allows any version of naf firmware to work. Perhaps they just look at the digits ...2886 and they're happy. Then again, maybe they are catching on and making the Obi's (with naf) disappear from the Obitalk dashboard to frustrate users (I doubt it.)

Of course the real benefit in using naf7 is that Obitalk is not needed and, perhaps in the future, will be the only way to keep the 1xx boxes working natively with GV. That is GV without needing Simonics Gateway (or similar.)
excalibur26
join:2013-02-02
No, it disappeared before I installed naf7.
Brown
join:2018-01-21

1 edit
to naf

said by naf:
Now if someone would just remind me how to get a freshly reset box out of "Service Not Configured" without using obitalk, we'd be all set...

I was working on a Obi100 today with a fresh reset. I could not log into it until I let the Obi connect to the internet first. After that, no problem connecting directly to the computer. My question is, did it go to Obitalk to register (or something)? And if so, would we all have problems after a reset if Obitalk disappeared someday? My gut feeling is it goes to Obitalk and simply unblocks the WAN port? If so, that may be an easy (for naf ) setting in the firmware which would solve the problem for people that reset the box after naf firmware was installed. The people with stock firmware would have a brick after a reset (if Obitalk was shut down.)

This might be another Obitalk requirement that should be eliminated. My Obi302 did not have this issue. Maybe because it has both WAN and LAN ports. The computer happily connected directly to the LAN after a fresh reset.
nanga
join:2014-07-26
Perry Hall, MD
Hi, I recently switched from simonics to naf7. I used obitalk portal to reconfigure my google voice, it worked for a day and now I am getting "backing off, authentication error"....I resolved it by re-entering my credential but few minutes later I am getting same error. Any idea?

I saw there is a OAuth feature for not using obitalk portal, is that is the solution to this "backing off authentication error" problem?
Brown
join:2018-01-21

1 edit

1 recommendation

I have an Obi110 using Obitalk and it has been reliable. You should try logging into your simonics.com account and click the link "Deauthorize Google Voice connection".

I generated my own credentials for my Obi302 and Obi100 and they have been reliable as well.
valley_nomad
join:2012-11-26
New York, NY
to talkbot
Can the current version FW survive the upcoming GV change in June?

kevinds
Premium Member
join:2003-05-01
Calgary, AB

2 recommendations

said by valley_nomad:

Can the current version FW survive the upcoming GV change in June?

lol

I'm guessing you'll find out in June
nanga
join:2014-07-26
Perry Hall, MD
to Brown
Thanks for information. I logged in and deauthorized simonics and it worked for 2 days (rather few hours) but again back to same problem with google authentication. Is this OBI issue or Google? It seems like obitalk with nav7 working fine for you, so it must be some other issue. Any other idea?

Thanks.
Brown
join:2018-01-21
My Obi110 with Obitalk is using stock firmware. I have not tried the combination of naf7 with Obitalk. I would recommend you stick with naf7 and generate your own oAuth2 credentials. That is probably the only combination that will have a chance come June 18.

WhyADuck
Premium Member
join:2003-03-05
said by Brown:

My Obi110 with Obitalk is using stock firmware. I have not tried the combination of naf7 with Obitalk. I would recommend you stick with naf7 and generate your own oAuth2 credentials. That is probably the only combination that will have a chance come June 18.

Correct me if I'm wrong, but I don't think the use of oAuth2 for authentication has anything to do with the use of XMPP for voice communications. In other words, just because you switch to using oAuth2 doesn't mean that you are not using XMPP and that you won't be impacted if Google drops XMPP support.
Brown
join:2018-01-21
True. I just feel Obitalk will completely drop support for the Obi1xx boxes on (or before) that date but maybe Google will slowly (or never) change over. Remember their false alarm in 2014?
nanga
join:2014-07-26
Perry Hall, MD
to Brown

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

Thanks. I will try OAuth2.
jon9999
join:2018-05-11
to talkbot
I'm new to all of this. I have an OBi 110 that no longer works with GV, so I'm considering downloading the naf7 firmware from www.obifirmware.com.

How can I convince myself that the firmware is safe and that it won't either insert a worm into my local network, turn the OBi into some kind of zombie bot, or hijack my Gmail account? I want to trust it, but these days you can't be too careful!
Pufferty
Perpetual Newbie
join:2014-07-07
Rockville, MD

2 recommendations

said by jon9999:

I'm new to all of this. I have an OBi 110 that no longer works with GV, so I'm considering downloading the naf7 firmware from www.obifirmware.com.

How can I convince myself that the firmware is safe and that it won't either insert a worm into my local network, turn the OBi into some kind of zombie bot, or hijack my Gmail account? I want to trust it, but these days you can't be too careful!

This forum is populated with a good crew of people, largely regulars (to which I'm relatively new!). Naf is known around these parts. You have nothing to worry about.

The bad news is that you won't be able to use your 110 much longer (apart from using it as a regular ATA). It appears that Google may be making it impossible for 3rd party firmware to accommodate the changes in store for GV.
naf
join:2017-12-12

3 recommendations

to talkbot
hey they finally updated the certs to GIAG3 (again) so naf7 is required again:

# openssl s_client -connect talk.google.com:5222 -starttls xmpp -xmpphost gmail.com </dev/null
CONNECTED(00000003)
depth=2 OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
verify return:1
depth=1 C = US, O = Google Trust Services, CN = Google Internet Authority G3
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google LLC, CN = gmail.com
verify return:1
---
Certificate chain
 0 s:/C=US/ST=California/L=Mountain View/O=Google LLC/CN=gmail.com
   i:/C=US/O=Google Trust Services/CN=Google Internet Authority G3
 1 s:/C=US/O=Google Trust Services/CN=Google Internet Authority G3
   i:/OU=GlobalSign Root CA - R2/O=GlobalSign/CN=GlobalSign
 

long live naf7, atleast for another month ;-)
Brown
join:2018-01-21
I'm very curious if naf7 still works with the new Google Voice setup (XMPP support ("chat" option) removed)?
azrobert
join:2015-02-07
Fountain Hills, AZ

1 recommendation

said by Brown:

I'm very curious if naf7 still works with the new Google Voice setup (XMPP support ("chat" option) removed)?

Yes it does, but outbound only. I have an OBi200 with 5859 and an OBi110 both defined with the same GV account. Outbound on the OBi110 works, but not inbound. I'm routing inbound from the OBi200 to the OBi110. When outbound fails I will route outbound from the OBi110 to the OBi200.
Brown
join:2018-01-21

3 edits
Thanks azrobert,

I have not yet let Obihai modify my Google Voice account and my 100 and 302 are still working for inbound and outbound calls. I plan on leaving it this way until it fails.

I'm wondering now if someone opens a new Gmail/GV account now do they get the "chat" option?

brg
Premium Member
join:2001-01-03
Chicago, IL
said by Brown:

I'm wondering now if someone opens a new Gmail/GV account now do they get the "chat" option?

Try it and see and report back!
Brown
join:2018-01-21
Too risky for me but maybe someone whose account is already broken...
Anon69136
@rcncustomer.com
to nanga
said by nanga:

Thanks for information. I logged in and deauthorized simonics and it worked for 2 days (rather few hours) but again back to same problem with google authentication. Is this OBI issue or Google? It seems like obitalk with nav7 working fine for you, so it must be some other issue. Any other idea?

Thanks.

I have the same issue, have you figured out a way? looks like every couple days i would need to log back to the obitalk website to reauthenticate.
Brown
join:2018-01-21

3 edits

1 recommendation

Obitalk no longer supports the Obi100 and 110. The "fix" for that is to follow all the steps at »www.obifirmware.com which includes downloading and flashing the firmware onto the Obi, doing the oAuth2 steps to generate your own password, disabling Obitalk in the web gui (auto provisioning and Voice services) and, removing your Obi device from your Obitalk account.

edits: It sounds like you have done the first step already.

Note: If your Google Voice account has been modified (by Obihai or maybe Google in the future) and no longer has the "chat" option in the Legacy Google Voice settings, the Obi1xx models will no longer be able to connect natively to Google Voice.
Anon0e52a
@rr.com

1 recommendation

I have followed all directions listed here: »www.obifirmware.com/OAuth2/

And I now have Google Voice working perfectly on Voice Service SP1 / ITSP Profile A.

i'm trying to add my previous SIP service on Voice Service SP2 / ITSP Profile B, and I only get authentication errors when trying to add another SIP provider on Voice Service SP2. This SIP service (flowroute) was working perfectly fine prior to following the directions on obifirmware.com/OAuth2/ . But after following these directions (and getting GV working again), and i don't seem to be able to add a SIP service in parallel...

Is it expected behavior that i would not be able to add a SIP service on SP2 after I have followed the obifirmware.com/OAuth2/ directions to get Google Voice working again on SP1? Thank you very much for your help here. Just trying to figure out how to get my SIP service working again on SP2 now that I've gotten GV working again on SP1......
Brown
join:2018-01-21

3 edits
Very good on the Google part of it, I know there are a lot of steps part of which provisions the device for Google Voice on all ports so it will be necessary to configure SP2 for Flowroute.

In ITSP Profile B, General you will setup your configuration for Flowroute. After doing so, click on Submit (and OK) before leaving the page. Go to SIP settings and adjust those. Click Submit before leaving that page. You'll also want to go to Voice Services SP2 and configure those params including Credentials. Also, it's easy to forget to set X_ServProvProfile to "B". Again, click on Submit before exiting to any other screen.

In Physical Interfaces, Phone 1 Port, set your primary line to Sp1 for Google or Sp2 for Flowroute. Submit and Ok that.

While in Voice Services go to Obitalk and make sure it is unchecked next to Enable. If you make a change there click submit. Also check System Management, Auto Provisioning and make sure Obitalk Provisioning Method is Disabled. Click Submit. When everything is setup click Reboot in the top right.
Anon0e52a
@rr.com
hi brown,

i can't thank you enough for the instructions here. Followed them exactly, and I have google voice and flowroute now connected/registered and working perfectly!

Thanks again!
Anon93b45
@vpnunlimitedapp.com
to talkbot
Hello,

I have GV setup with SP2 and Freephoneline on SP1. Removed my device from Obitalk, updated with naf firmware. Confirmed that firmware ver after update...everything is good. Followed »www.obifirmware.com/OAuth2/ to enable GV, rebooted twice..but GV is still not working...am I doing something wrong? or do I have to have GV on SP1?

Thx
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net
I did that procedure yesterday when I was helping naf test stuff, and it worked. Assuming your Google Voice account has not yet been converted to SIP, you should be able to make it work at least for another month. Let us know specifically what's not working and someone will try to help.
mazilo
From Mazilo
Premium Member
join:2002-05-30
Lilburn, GA
said by Mango:

Assuming your Google Voice account has not yet been converted to SIP, ...

Wow, if this is true, then I certainly am glad to hear GV now supports SIP.

brg
Premium Member
join:2001-01-03
Chicago, IL

1 recommendation

said by mazilo:
said by Mango:

Assuming your Google Voice account has not yet been converted to SIP, ...

Wow, if this is true, then I certainly am glad to hear GV now supports SIP.
If you've been reading you know it is not just that simple. "PolyObi-SIP" maybe. Certainly (thus far, at least) not the truly open SIP that we all know and love...
brider25
join:2003-05-09
to talkbot
Hey guys, I hope someone can offer some suggestions..

I was initially successful in loading the modified firmware and got my device (OBi110) connected. I went to obi website to delete the device and stupidly remove the config for SP1(Google Voice) instead.

I've repeated the steps again but cannot seem to get connected again, i've been getting Backing Off (420s):Authentication error

Any suggestions?
Brown
join:2018-01-21

1 edit
It sounds like everything is setup correctly except the oAuth password. Try pasting it in again if you haven't already. Otherwise, regenerate a new password.

Edit: Confirm that you still have the "Chat" option in Google Voice Legacy Settings.
azrobert
join:2015-02-07
Fountain Hills, AZ

2 recommendations

said by Brown:

Edit: Confirm that you still have the "Chat" option in Google Voice Legacy Settings.

The OBi110 will still connect to GV when the Google Chat option has been removed. Outbound on the OBi110 will still work, but inbound will fail. I currently have an OBi200 and an OBi110 connected to the same GV account and this is how mine works.
Brown
join:2018-01-21
Yes, but she(he) would probably be disappointed if Obitalk broke her Google Voice account and might not want to bother making a new password.
brider25
join:2003-05-09
I do have "Chat" option selected in legacy.

Ok, regenerated a new password and got connected but I'm unable to do inbound or outbound calls.

I get this message when I try to place an outbound call:
"There is no service available to complete your call"
Brown
join:2018-01-21
In Physical Interfaces, Phone Port, set your primary line to Sp1 (assuming you're connected on sp1). In Voice Services set X_ServProvProfile to "A" (assuming you used ITSP A).
brider25
join:2003-05-09
Thanks for your quick responses.

Got outbound calls to work, inbound doesn't ring as azrobert stated above.
Brown
join:2018-01-21
In the SP1 Service check the X_InboundCallRoute is set to ph1 (default).
brider25
join:2003-05-09
Default for X_InboundCallRoute was set to ph.
Tried ph1, didn't make a difference.
Brown
join:2018-01-21

2 edits
What I would do is a reset on the box. I'm assuming you kept your password in a file so you can easily copy and paste it back in.

Edits: You'll need to do the ConfigURL step at Obifirmware.com to provision it for GV. That is the step where it boots twice. Also they tell you what settings to configure.
brider25
join:2003-05-09

3 edits
Did the reset, but still can't get inbound calls to work.
Not sure if it's my GV or if i'm missing some other setting.

Thanks again.

edit: typos
Brown
join:2018-01-21
If you go to Status, Call History does it show the incoming call? If yes check that the analog phone itself is on.
brider25
join:2003-05-09
to Brown

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

Incoming call are not logged in call history. Not sure it it makes a difference but GV is also setup to ring my cell which does work.
Brown
join:2018-01-21

1 edit
I found this that might help:
Go to hangouts.google.com or open Hangouts in Gmail.
Open settings:
On hangouts.google.com: Click Menu Menuand then Settings.
On Gmail: At the top of your Hangouts list, click the Down arrow Down Arrow.
Next to "Ring on incoming phone calls," check or uncheck the box. When the box is checked, calls to your Google Voice will ring in Hangouts at hangouts.google.com, in Gmail, and in the Hangouts Chrome app.

Edit: Oh, I just thought of another thing. Make sure Obitalk is disabled in both AutoProvisioning and Voice Services. After the reset they were probably switched on.
brider25
join:2003-05-09
Hi Brown,

Thanks for all your suggestions and effort... still stuck with no inbound calls. I've tried all your suggestions and a few others.
Brown
join:2018-01-21
I would try unchecking the cell phone in the your Google account to see if the Obi works that way. Then we just have to find out why they aren't both ringing.
obiwont
join:2018-05-23
Seattle, WA
to Brown
My Obi110 just recently stopped working with GV (after previous manual FW upgrade back when they initially discontinued support). I found the obifirmware.com website, installed the -naf7 firmware, followed all instructions to set up for direct GV access, but I keep getting an authentication error. I have deleted and recreated the Oauth stuff (I had to try a few times each time before it gave me a refresh token). I have turned off obitalk, etc. But still no-go - no outgoing calls (let alone incoming). In classic Google Voice, I am not seeing "chat" as an option, but I have not updated to the newest version. Any suggestions for what I might be missing?
Brown
join:2018-01-21

1 recommendation

If "chat" was removed by Obihai (Obitalk) you will need to follow azroberts procedure to link it to another Obi or, possibly coming soon, use Simonics new GV-SIP Gateway.
obiwont
join:2018-05-23
Seattle, WA
Thanks. But his post said that outgoing worked even with GChat gone, just had to link for incoming. I only care about outgoing, and no go there. Or am I missing something?
Brown
join:2018-01-21

1 recommendation

It sounds like a similar situation to 'brider25' above (earlier today). Try resetting the Obi110 and follow ObiFirmware.com to provision it and adjust the settings. Then paste in your password and type in your email. Remember to 'submit' the changes before leaving any screen. Then reboot.
Anon57251
@suddenlink.net
to talkbot
Just wanna say "Great Big Thanks" for the firmware update, OBI 100 works much better than new!
Updated firmware, voice account and VOILA working!
I Appreciate your effort.
brider25
join:2003-05-09

2 recommendations

to Brown
OK, I now have inbound calls working.

Legacy GV settings was fine, it has my cell and chat checked.
The new GV settings have web and my cell listed twice, all turned on. Turning off web and one the cell did it, leaving web on works too.

Brown, thanks again for your time.
obiwont
join:2018-05-23
Seattle, WA
to Brown
Thanks again. It sounds like exactly the same situation, except not getting fixed for me. Typically, OAuth 2.0 Playground gives me an error "unauthorized_client" the when I click to exchange the authorization code for tokens. Before, going back and forth once or twice would get me an exchange token but, currently, even deleting everything and starting from scratch is now getting stuck there. I don't know if whatever is behind that is what was stopping it from working before even when I got an exchange token. Any suggestions?
Brown
join:2018-01-21

2 edits
Yeah, from experience I can say that if there are any errors in the resulting password (indicated by colors and/or error messages), the password will not work. Do you have just one Google Voice account? How about Gmail accounts? If >1 maybe they are getting mixed up. The oAuth2 playground seems kind of buggy sometimes.

Maybe start over at the Developers site and a new project name and be sure to only log into your Gmail account associated with your Voice account.
Brown

1 recommendation

to Anon57251
said by Anon57251 :

... OBI 100 works much better than new!

I agree, there's less voice delay compared to the old obsolete method (Obitalk).
AZ Kid
join:2018-05-24
Mesa, AZ

1 edit

2 recommendations

to talkbot
I want to thank you for this firmware update and instructions at »www.obifirmware.com/OAuth2/.

Because of it, I updated my Obi110 last night and it works great again, both inbound and outbound. I had similar issues as brider25, but reading through the last of these messages and instructions between Brown and brider25, including a factory reset, my Obi 110 is working again.

I recently started 2FA with Google and thought it caused my Obi to stop working, but I learned otherwise and 2FA hasn't affected this update.

An aside, I have been using my Obi110 to send faxes. It's never been advertised as such, but it's worked for me using an old DELL 1135N. I'm glad to have that capability again.

I suppose in June it will stop working again - Obi keeps sending emails (one today) or has been for what seems years about the imminent Obi110's end of life, but it still keeps working thanks to you and others.

Thanks again to all involved and your time in developing and sharing this.

Edit 5.25.18: The Chat still appears in my Google Legacy site
Brown
join:2018-01-21

2 recommendations

said by Brown:

I'm wondering now if someone opens a new Gmail/GV account now do they get the "chat" option?

Confirmed: Yes they do.
obiwont
join:2018-05-23
Seattle, WA

1 recommendation

to Brown
Got it to work now, outgoing and incoming. I did everything the same as before, except in MS Edge rather than Firefox. Don't ask me what Firefox was doing that somehow messed it up even though all steps seemed fine. Many thanks, Brown, and everyone who has contributed here!
DJB628
join:2018-05-28
Delray Beach, FL
to talkbot
Hello, any help would be greatly appreciate, I did the Naf SW upgrade yeasterday and my OBI 100 worked great again and back to like before, but this morning again, it was back to backing off, any suggestions ?? Do I simply delete again and set it up again ??
Anon6ab64
@wbhsi.net
If you are on Google Voice our 100 series Obi devices I'll cease to function on June 18 when Google changes their system. It is my understanding the NAF firmware will not fix this. They will however still work with other paid providers.

kevinds
Premium Member
join:2003-05-01
Calgary, AB

1 recommendation

said by Anon6ab64 :

They will however still work with other paid providers.

They will work on other providers without the NAF firmware too, just to be clear
OBi1FW
join:2017-12-27
Vienna, VA
to talkbot
Oh! Someone has made a video about our website and firmware!?
»www.youtube.com/watch?v= ··· YK-oBWvM
DJB628
join:2018-05-28
Delray Beach, FL
Yes, but this only works as a temp fix, it keeps backing off after a few days and GV has to be set up again.

My guess is that the 4 page setup of this FW needs to be followed so it does not back off any longer and I guess that is bc it stops using the Obitalk platform.

If I'm wrong let me know.
kersey
join:2017-12-22
to talkbot
Not sure if this will help anyone having trouble but about a month ago I downgraded the firmware from 2886-naf7 to 2886-naf5, did the ***8 factory reset then added the google voice accounts back on the obi site and this obi100 has been working perfectly since. I know google says June 18 as the deadline but I'm hoping they're late as usual and it keeps going past that date.
Anon55f0d
@rr.com
My 110 stopped working 4 days ago and after much dancing around by the Obi forum folks, I found the naf firmware. So to whoever did that..THANKS! IF what I am now reading is true, I will lose function again on the 18th? Is there some hardware limitation to the 100/110 that prevents it from working with the coming GV changes? If not, I would like to propose that we start some kind of gofundme to get someone(s) to rewrite the firmware entirely and be completely done with Obi. Perhaps the firmware I have now was a complete rewrite but it still links to the Obi portal. I will be the first to contribute $$ to this project. I would do it myself but this is not my area for development expertise.
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net

1 recommendation

to DJB628
said by DJB628:

Yes, but this only works as a temp fix, it keeps backing off after a few days and GV has to be set up again.

Did you follow the procedure at »www.obifirmware.com/OAuth2/, in particular the option "Auto-refresh the token before it expires."? If no, give that a shot and see if that solves your problem.
DJB628
join:2018-05-28
Delray Beach, FL
I did not do this process, I simply installed the latest Naf FW, I then deleted the device and setup GV again, and after a minuted it connected and stays connected for a few days and I have to do the same process again.

I'm assuming following this whole OAuth setup, will eliminate the use of the OBItalk process. Unless there is a way to simply do the auto fresh the token before it expires without having to do the full Auth process ??
naf
join:2017-12-12

2 recommendations

to OBi1FW
said by OBi1FW:

Oh! Someone has made a video about our website and firmware!?

dont know about all this video nonsense, but the man does seem pretty perceptive:
said by joevioper over on obitalk :

...Do not listen to "Steve[InWA]"...

AZ Kid
join:2018-05-24
Mesa, AZ

1 recommendation

to DJB628
When using this: »www.obifirmware.com/OAuth2/
one needs to FIRST remove their OBi 100/110 device from the OBi Talk portal at »www.obitalk.com/ otherwise the portal will connect/talk to your device then stop your device from working.

There are also settings in your OBi admin Setup Wizard on your physical device under it's local IP address inside your home network, (admin/admin = user name/password) under

VoiceServices/OBiTallk Service Settings/Parameter Name -- unclick enable
&
System Management/AutoProvisioning/Auto Firmware Update -- select Disabled in the drop down options

This will also prevent it from communicating with OBiTalk portal.

These are not mentioned, I believe, at the link: »www.obifirmware.com/OAuth2/

Also, a factory reset is suggested in this forum before doing this update at: »www.obifirmware.com/OAuth2/

I reset my OBi110 on 5/24 and it's still up and running.
OBi1FW
join:2017-12-27
Vienna, VA
said by AZ Kid:

These are not mentioned, I believe, at the link

It's better now?
DJB628
join:2018-05-28
Delray Beach, FL
to AZ Kid
Thanks for the info, I'll give it a shot over the weekend and see.
LowK3y
Premium Member
join:2018-01-05
Columbus, OH
to talkbot
Been using the naf7 firmware for a while, but still registered using ObiTalk portal until today. Followed the directions »www.obifirmware.com/OAuth2 (nice walkthrough and site btw). I did *not* factory reset before doing. I am curious about a couple of settings. Could someone tell me if the 'obihai.sip.google.com' and 'obihai.telephony.goog' (assuming that's truncated) are correct?
naf
join:2017-12-12

1 recommendation

to LowK3y

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

said by LowK3y:

Been using the naf7 firmware for a while, but still registered using ObiTalk portal until today. Followed the directions »www.obifirmware.com/OAuth2 (nice walkthrough and site btw). I did *not* factory reset before doing. I am curious about a couple of settings. Could someone tell me if the 'obihai.sip.google.com' and 'obihai.telephony.goog' (assuming that's truncated) are correct?

Short answer: no.

Looks like you missed this part:
"NOTE: OBi1 series can only connect to Google Voice with XMPP."

so you should have used the other ITSP config url
LowK3y
Premium Member
join:2018-01-05
Columbus, OH
I know for a fact that those were in there with the settings from Obitalk. It's been working that way. Perhaps it's something generic that doesn't really get used?

I'll have someone call me and see if I still get ring, outbound is working. I'll edit post...

Edit: Yeah, it works. Maybe Obihai/polycom is just being lazy.
LowK3y
Oh! I missed the ConfigURL bit....

Edit:Now I'm wondering if I should even bother
naf
join:2017-12-12
said by LowK3y:

Oh! I missed the ConfigURL bit....

Edit:Now I'm wondering if I should even bother

if you didn't reset, you already have the necessary bits still configured from the previous obitalk provisioning (or else GV would just show as "Service Not Configured")
LowK3y
Premium Member
join:2018-01-05
Columbus, OH
Cool, thank you for everything naf!
DJB628
join:2018-05-28
Delray Beach, FL
to AZ Kid
I did this yesterday and this morning it did not Backoff, so maybe this resolved the issue, before I have to go through the whole Auth2 process. I'll keep you posted. Thanks again AZ Kid for the info

I know the June 13th is the date that it's suppose to stop working, but does that also apply to the Naf firmware ?? If it does then there is no need for me to do the Auth2 setup process if it'll stop working then.

kevinds
Premium Member
join:2003-05-01
Calgary, AB

1 recommendation

said by DJB628:

but does that also apply to the Naf firmware

If I'm following correctly, we'll find out in 10 days
tripleV
join:2018-06-04
to naf
said by naf:
said by LowK3y:

Oh! I missed the ConfigURL bit....

Edit:Now I'm wondering if I should even bother

if you didn't reset, you already have the necessary bits still configured from the previous obitalk provisioning (or else GV would just show as "Service Not Configured")
I deleted obitalk configuration, it worked for a few days, now it is showing Service Not Configured, shall add it back to make it work? Thanks.
Brown
join:2018-01-21
You'll need to do all the steps at the Obi software site including oAuth2 password setup. You should start by resetting the Obi.
tripleV
join:2018-06-04
Thanks Brown for the response. I did setup the oAuth2, but I didn't reset Obi, and deleted the obitalk. So I need to reset and put obitalk back I would assume.
Brown
join:2018-01-21
Leave it off Obitalk and do the Configurl step.
tripleV
join:2018-06-04
ok got it, will do it later and report back thanks.
twinclouds
join:2010-06-12
San Diego, CA
to naf
Hi, naf:
I set up my obi200 as you instructed a few days ago with no problem. I used the XML file for GV-sip call. However, today, I cannot make call anymore. It says GV error and inform me I may need to change obitalk google login. I thought using the "3.2.2 (Build: 5859EX-arrynrob7)" firmware, I don't need to register to obitalk portal, correct? The SP1 (which I am using) login shows: "Backing Off (887s):Authentication error". The password I used in SP1 service in the obi200 is correct.
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net
Just to verify, when you refer to the password, you are referring to the long string generated by »www.obifirmware.com/OAuth2/ correct? You don't use your actual Google password anywhere.

When creating your credentials, did you remember to click "Auto-refresh the token before it expires"?
twinclouds
join:2010-06-12
San Diego, CA

2 recommendations

@Mango:
Sorry for my stupid mistake . Yes, after I filling all the Oauth2.0 credentials, everything is working fine now. The confusion part is why it worked last time. Maybe I tested XMPP XML file first? Not sure.
Anyway, think you very much for your help.
tripleV
join:2018-06-04
to Brown
said by Brown:

You'll need to do all the steps at the Obi software site including oAuth2 password setup. You should start by resetting the Obi.

1 resetting obi101
2.Go to Service Providers, ITSP Profile A, General.
Set SignallingProtocol to Google Voice.
3. Go to Voice Services, SP1 Service.
Set AuthUserName (your gmail address) xxxx@gmail.com
Set AuthPassword: oAuth2 passphrase

still get "service not configured", when dial out, voice to configure service from Obitalk, tried to configure obitalk, got a device there, now can't delete it from obitalk web server anymore, guess they kill my device...
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net

2 recommendations

You didn't follow all the directions at »www.obifirmware.com/OAuth2/ .
tripleV
join:2018-06-04
guess this is for me? I did follow instruction and generated all client id, auto refresh token etc and form the final authpassword. Don't know why you said I didn't follow
JTS33
join:2003-05-03
USA
to Mango
At this time, is disassociating from Obitalk for GV mainly to keep Obi from converting our GV accounts from XMPP to SIP in the hopes that Google will take a long time to actually discontinue XMPP support?

If Google does discontinue XMPP support, then it's a moot point with these Obi1xx, right?
Brown
join:2018-01-21

2 recommendations

to tripleV
said by tripleV:

guess this is for me? I did follow instruction and generated all client id, auto refresh token etc and form the final authpassword. Don't know why you said I didn't follow

It sounds like you just need to do the ConfigURL step (where it boots twice). Use the XMPP method.
tripleV
join:2018-06-04
said by Brown:
said by tripleV:

guess this is for me? I did follow instruction and generated all client id, auto refresh token etc and form the final authpassword. Don't know why you said I didn't follow

It sounds like you just need to do the ConfigURL step (where it boots twice). Use the XMPP method.
Thanks Brown, you are right, I didn't configure the ConfigURL step, now it get connected, the incoming is working, but outgoing said "There is no service to connect this call", got any hint?

Appreciated your help.
Brown
join:2018-01-21

1 edit

2 recommendations

Go to Voice services, SP1, X_ServProvProfile and set it to "A"
And Physical Interfaces, Phone Port, Primary Line "SP1 Service"

Go to Voice Services, Obitalk and make sure there is no check mark next to "enable".
The Obi number (written on the bottom of the Obi) will not work anymore.
tripleV
join:2018-06-04

1 edit

1 recommendation

great, it works now. I never manually configured it before. The dial out is working, except there is no ringing tone, guess that is minor. The XMPP might not work after June 18 anyway.

calling my cellphone, cellphone is ringing, my obi not ringing tone, and silent.
Brown
join:2018-01-21
After a reset those settings should have been defaults except Obitalk service. Which setting fixed it?
There is no ringing when you dial someone? Just silence?
tripleV
join:2018-06-04
said by Brown:

After a reset those settings should have been defaults except Obitalk service. Which setting fixed it?
There is no ringing when you dial someone? Just silence?

after resetting the OBI110,

1) OBItalk provision under autoprovioning is by default set to disabled
but under "voice service", need to go to "Obitalk Service" to disabled
2) need to follow ConfigURL of the oAuth2 procedure
3) Physical Interfaces, Phone Port, Primary Line "SP1 Service"
Brown
join:2018-01-21

2 recommendations

to tripleV
said by tripleV:

...The XMPP might not work after June 18 anyway.

You'll get a solid 13 days of usage!

We're all hoping Google doesn't flip the switch and kill the Obi1x0 devices (except the animals at ObiBark).

sammoats
Premium Member
join:2014-02-16
Winchester, VA

2 recommendations

+1 for ObiBark... lol
liamfm
join:2018-06-06
Rutland, VT
Hi, I'm trying to get incoming to work on my Obi100. I've followed the »www.obifirmware.com/OAuth2/ and am connected and can successfully make outgoing calls, but incoming doesn't work.

Would anyone mind walking me through some troubleshooting?

Thanks!
ipso
join:2018-05-13
Joshua Tree, CA

1 recommendation

said by liamfm:

Hi, I'm trying to get incoming to work on my Obi100. I've followed the »www.obifirmware.com/OAuth2/ and am connected and can successfully make outgoing calls, but incoming doesn't work.

Would anyone mind walking me through some troubleshooting?

Thanks!

I had the same problem sometime ago, and incoming only worked after I had deleted the forwarding phones, if you have any, from my desktop GV settings, and then re-added and re-verified them. I did not delete the Obi device from the forwarding phones when doing so. This may work for you, too.
DJB628
join:2018-05-28
Delray Beach, FL

1 recommendation

to AZ Kid
OK update AZ Kid, this worked for about 5 days before it backed off again. So I did it again and did each step separate and rebooted after each step, lets see if it works longer now. No need to do the Auth2 full process for now, until I'm sure that our OBI 100 will work the dead date in June, if it does then I'll do the whole process.. I'll keep you posted.
liamfm
join:2018-06-06
Rutland, VT
to ipso

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

Thanks - tried that but it didn't help. I also don't have "an obi device" in my forwarding phones list. Only "web" and "XT1575" (which is my cell, which I've turned off the incoming calls.
DJB628
join:2018-05-28
Delray Beach, FL

1 edit
The backing off message I now get even though the OBI 100 is disable from the OBItalk is this, and I have to delete the device and set up GV again and sign in to the same account each time.

Brown
join:2018-01-21
It sure looks like your Google Voice account has been converted to GV-SIP.
azrobert
join:2015-02-07
Fountain Hills, AZ

2 recommendations

to liamfm
A slide switch will be coming to turn GV/SIP on or off. To currently view GV/SIP or GV/XMPP to need to be in the Legacy GoogleVoice. To enter the Legacy interface click on Transfer above the linked numbers and a new window will open with a list of all the forwarding phones.
DJB628
join:2018-05-28
Delray Beach, FL
Are you talking about logging into the GV interface from within Google and then turn off GV/SIP ??
DJB628
to azrobert
I'm assuming this reply quote was not meant for me ??
azrobert
join:2015-02-07
Fountain Hills, AZ

1 edit

2 recommendations

to DJB628
I don't know which reply you're referencing, my last reply was to liamfm. In that post I was talking about signing into your GV account at »voice.google.com. To see a complete list of your forwarding devices you then need to go to Settings under the Legacy GV interface. If you converted to GV/SIP it will show OBiTalk Device. If you are still on GV/XMPP it will show Google Chat.

I read somewhere Google is going to add a slide switch to turn off/on GV/SIP. I thought I read it on the OBiHai forum, but I can't find the post. I assume it will be added to the new GV interface under Settings
gtb
Premium Member
join:2016-05-16
united state

1 recommendation

said by azrobert:

I read somewhere Google is going to add a slide switch to turn off/on GV/SIP. I thought I read it on the OBiHai forum, but I can't find the post. I assume it will be added to the new GV interface under Settings

Google *has* to move the OBI devices configuration. with a slider like all other SIP connections, from the legacy GV interface to the new GV settings (incoming calls -> enable/disable endpoint) at some point to achieve their desired closure of the legacy GV interface(*). I suspect (but have zero knowledge) that the OBI work was happening in parallel to the other GV SIP work (coordinated, but independent team members) and each took a slightly different tack for step one for their apps (and remember that the OBI conversion was over weeks (and is likely not complete for all to this day), so they likely wanted to keep the legacy GV settings as the single point of configuration). I would not be surprised if the new GV settings will take over the OBI devices on/about the formal end of XMPP support (which may, or may not, start next week).

(*) There are a couple of (more obscure/complex) settings that, as I recall, can only be performed in the legacy GV settings. It is unclear (to me, at least) if they are going to be moved to the new GV settings, or removed (while I have used some of the obscure settings, the claim by some is that some of those settings are sufficiently complex that people end up getting confused and the result is wasted support effort ("Doctor, it hurts when I do this", "Stop doing that!!!"). That the self selected (here, and on the Obihai forums) can figure out how some of those settings can be usefully used may not represent the typical user base of GV).

kevinds
Premium Member
join:2003-05-01
Calgary, AB
said by gtb:

the claim by some is that some of those settings are sufficiently complex that people end up getting confused and the result is wasted support effort ("Doctor, it hurts when I do this", "Stop doing that!!!").

If you want immediate feedback on your changes, make your changes in the production system.... lol
DJB628
join:2018-05-28
Delray Beach, FL
to azrobert
Thanks, I thought you were referring to my post above, my bad, cheers mate.
tripleV
join:2018-06-04

1 recommendation

to azrobert
said by azrobert:

to DJB628
I don't know which reply you're referencing, my last reply was to liamfm. In that post I was talking about signing into your GV account at »voice.google.com. To see a complete list of your forwarding devices you then need to go to Settings under the Legacy GV interface. If you converted to GV/SIP it will show OBiTalk Device. If you are still on GV/XMPP it will show Google Chat.

I read somewhere Google is going to add a slide switch to turn off/on GV/SIP. I thought I read it on the OBiHai forum, but I can't find the post. I assume it will be added to the new GV interface under Settings

to get new google voice setting: »voice.google.com/settings
for lagacy setting: »www.google.com/voice/b/0#phones
after login to your google account.

count down continue, bet this legacy would stay for a little longer.
DJB628
join:2018-05-28
Delray Beach, FL
My OBI 100 is still working, but I still have to delete my SP1 settings everyday or other day, and set it all up again to have it connect again from being backed off. When it's backed off is always says the same thing, using an old or invalid Gmail address, yet I don't have it connecting to the OBItalk.

So just curious, is there another way to sign the account in, rather then the Google window popup that allows you to choose the account. My guess is the fact that I sue a Gmail inbox Addon to sign in to my numerous Gmail accounts, that might be interfering with it, and not having that account as default, so when the Addon signs in the last account that is signed in is the default account rather then the account of the OBI email one I'm using. Hope this makes sense.

I'm going to make the gmail for the OBI default and see if that makes a difference.
tripleV
join:2018-06-04

1 recommendation

said by DJB628:

My OBI 100 is still working, but I still have to delete my SP1 settings everyday or other day, and set it all up again to have it connect again from being backed off. When it's backed off is always says the same thing, using an old or invalid Gmail address, yet I don't have it connecting to the OBItalk.

So just curious, is there another way to sign the account in, rather then the Google window popup that allows you to choose the account. My guess is the fact that I sue a Gmail inbox Addon to sign in to my numerous Gmail accounts, that might be interfering with it, and not having that account as default, so when the Addon signs in the last account that is signed in is the default account rather then the account of the OBI email one I'm using. Hope this makes sense.

I'm going to make the gmail for the OBI default and see if that makes a difference.

I am using 110, but I think it is the same configuration. I am using the oAuth2, so follow the »www.obifirmware.com/OAuth2/ to setup your passphrase.

after resetting the OBI110,

1) OBItalk provision under autoprovioning is by default set to disabled
but under "voice service", need to go to "Obitalk Service" to disabled
2) need to follow ConfigURL of the oAuth2 procedure
3) Physical Interfaces, Phone Port, Primary Line "SP1 Service"

Right now I only got a problem with dial out with no tone, incoming and outgoing both working fine.
Brown
join:2018-01-21

1 recommendation

to DJB628
@DJB628
Once your GV account is converted to GV-SIP there may be no way yet to convert it back to XMPP (required for Obi1x0 models). The provisioning file does have a switch that I would certainly try before giving up however. If you look at the provisioning XML file at ObiFirmware it has the lines shown below:
.
.
.
    <ParameterValueStruct>
      <Name>GVSIP</Name>
      <Value>true</Value>
    </ParameterValueStruct>
.
.
.
 
Try setting it to false.
kkhan
join:2018-06-14
San Diego, CA
to talkbot
Just found obifirmware.com and it's not clear who I can thank for this firmware to keep my Obi100 working with Google Voice -- brilliant work!

jsolo1
Premium Member
join:2001-07-01
PRIL

1 recommendation

User "naf" is the brains behind it.
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net

1 recommendation

to kkhan
That would be naf See Profile and a few other volunteers
DJB628
join:2018-05-28
Delray Beach, FL
to tripleV
OK, thanks I'll keep this in mind if I decide to do the full Auth2 config setup.

For now I made the email account default on my Addon got Gmail, to see if that was signing me out of the OBI gmail account, so far it's worked for the past 2 days, so we will see. I will also wait to see what happens with the OBI 100 once the full GV full switch over is done. Then I'll either decide to do the Auth2 process, or I may just get a OBI 200. I only use this as a backup mainly for faxing, but we will see.

Thanks all for the advice. I'll keep you posted on my future direction.
DJB628

1 recommendation

Other then having to sign in every day or other day, the OBI 100 is still working. It's a pain, but still works.
AZ Kid
join:2018-05-24
Mesa, AZ

1 recommendation

to DJB628
Well, It's June 18 by my reckoning, I reckon.

I read that was the deadline for the OBi110 to stop working. But mine still works. Incoming and outgoing calls.

I even faxed a 5-page fax at 10:00 pm MST (AZ doesn't go on Daylight Savings) which is June 19 in most parts of the world.
DJB628
join:2018-05-28
Delray Beach, FL
Great, mine still working also, although I still have to resign back in every other day, but it's still working, so over the weekend, I'll do the Auth2 process, if still up and running.

Thanks for the update AZ Kid
DJB628

1 recommendation

Can others still confirm the Auth2 is still working ??

This morning I can no longer delete the SP1 and sign back in the GV account, so before I do the full Auth2 process, I want to make sure it's still working and Google didn't officially block the OBI 100
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net

1 recommendation

Still working here, with naf7 firmware.
DJB628
join:2018-05-28
Delray Beach, FL
OK will do the Auth2 process later today
SeanR7
join:2018-05-17

1 recommendation

to JTS33
said by JTS33:

At this time, is disassociating from Obitalk for GV mainly to keep Obi from converting our GV accounts from XMPP to SIP in the hopes that Google will take a long time to actually discontinue XMPP support?

If Google does discontinue XMPP support, then it's a moot point with these Obi1xx, right?

Has Obi converted any GV accounts from XMPP to SIP as of yet?

When Google does discontinue XMPP support will Obi1xx's still be able to connect to Simonics Gateway through Obitalk?
gtb
Premium Member
join:2016-05-16
united state

1 recommendation

said by SeanR7:

Has Obi converted any GV accounts from XMPP to SIP as of yet?

Yes (for the devices they still support). While there are certainly the edge cases, starting a number of weeks ago Obi did a firmware update on those devices which it could contact which resulted in an auto-migration from the old XMPP Google Chat connection to the SIPish connection on both the OBi devices (ATAs and phones) and Google Voice (resulting in, more or less, the same place as those that voluntarily requested to be moved to the WiFi Beta, which also removed XMPP Google Chat option and are now exclusively SIP-like). I believe (with the exception of those devices that the Obitalk portal has lost track of) Obi has completed their conversion(s). Of course, there are going to be stragglers showing up for weeks (maybe months/years) as some old device that was powered off in some cabin in the woods gets turned back on for the summer vacation, and there have been reports of individual migration failures that have required special action (there are always a few failures for every firmware update).
excalibur26
join:2013-02-02

1 recommendation

to Mango
said by Mango:

Still working here, with naf7 firmware.

Same here.
Rob Frohne
join:2018-06-21
Walla Walla, WA
Yesterday I set up our Obi110 using the Oath2 procedure on obifirmware.com. It worked wonderfully until sometime this morning. Now it is not. I'm glad to read some of the rest of you are still working. Is there a good way to debug what is happening with the Obi110? My symptoms are that it says "We could not complete your call. Please try again."

SP1 says Status Connected. It goes from 0 active calls, to 1 active call when I try and dial out, and get the message about trying again.
It appears by the number of dots that the Auth Password changed.
Brown
join:2018-01-21

1 edit

2 recommendations

Part of the procedure is to switch off the Obitalk in the System management, auto provisioning, Obitalk area and Voice services, Obitalk, make sure it is not checked. I'm wondering if maybe it tried to connect to Obitalk and screw with things. You should also disable it from your Obitalk account.

When you generated the oAuth password there is a check mark for "auto renew" (or similar). That is important otherwise it expires in about 1 hour.

Since it says "connected" try checking Physical interfaces, Phone 1 port, Primary Line, SP1 Service.

The number of dots under authpassword don't mean anything. Your password has not changed.
tripleV
join:2018-06-04
said by tripleV:

great, it works now. I never manually configured it before. The dial out is working, except there is no ringing tone, guess that is minor. The XMPP might not work after June 18 anyway.

calling my cellphone, cellphone is ringing, my obi not ringing tone, and silent.

alright, past 06/18, and it is still kicking. Now I am back to look at the dialout with no tone problem, anyone got a hint?
Brown
join:2018-01-21
to tripleV

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

said by tripleV:
alright, past 06/18, and it is still kicking. Now I am back to look at the dialout with no tone problem, anyone got a hint?

I wasn't fully convinced your reset worked last time because there were some unusual defaults. It's pretty easy to start over if you have your oAuth password saved in a file. If you want to, follow this: »www.obitalk.com/info/faq ··· ry-Reset
then, in the local gui, shut off all the Obitalk stuff (2 places), provision at Obifirmware for XMPP, fill in your gmail.com, and paste in your oAuth password and it should work normal. It's only about a 5 minute process because the oAuth is already done.
DJB628
join:2018-05-28
Delray Beach, FL
to Brown
Isn't that info you mention above and pasted in quotes below, already explained in the Auth2 process, or is that something that is needed to be done before doing the Auth2 process

"Part of the procedure is to switch off the Obitalk in the System management, auto provisioning, Obitalk area and Voice services, Obitalk, make sure it is not checked. I'm wondering if maybe it tried to connect to Obitalk and screw with things. You should also disable it from your Obitalk account.

When you generated the oAuth password there is a check mark for "auto renew" (or similar). That is important otherwise it expires in about 1 hour."
naf
join:2017-12-12

2 recommendations

The "Auto-refresh the token before it expires" setting on the OAuth playground only applies when trading a refresh_token for an access_token on the website.

For our purposes, we don't need the oauth playground to refresh (or even generate an initial) access_token. We just need the refresh_token.

The obi fw will use that refresh_token (which never expires) to get new access_tokens as necessary when they expires every hour or so.

So that settings doesn't matter.
OBi1FW
join:2017-12-27
Vienna, VA
Thanks, I will fix that.
DJB628
join:2018-05-28
Delray Beach, FL

1 edit
to naf
So that I have this correct, doing the exact process as describe on the Auth2 is all that is needed to get it working properly ?? And also is a Factory Reset of the device required first before I do this process, if yes, what is the proper reset process ??
excalibur26
join:2013-02-02

1 recommendation

said by DJB628:

So that I have this correct, doing the exact process as describe on the Auth2 is all that is needed to get it working properly ?? And also is a Factory Reset of the device required first before I do this process, if yes, what is the proper reset process ??

Any of these three will work.

»www.ukvoipforums.com/vie ··· hp?t=151
tripleV
join:2018-06-04
to Brown
said by Brown:

said by tripleV:
alright, past 06/18, and it is still kicking. Now I am back to look at the dialout with no tone problem, anyone got a hint?

I wasn't fully convinced your reset worked last time because there were some unusual defaults. It's pretty easy to start over if you have your oAuth password saved in a file. If you want to, follow this: »www.obitalk.com/info/faq ··· ry-Reset
then, in the local gui, shut off all the Obitalk stuff (2 places), provision at Obifirmware for XMPP, fill in your gmail.com, and paste in your oAuth password and it should work normal. It's only about a 5 minute process because the oAuth is already done.
Maybe you are right, now from Obitalk.com, my dashboard won't let me delete my device. I only reset the obi110 device. The new Obitalk won't let me delete anymore, and keep me warning of EOL, maybe that is the problem.
Brown
join:2018-01-21
Yeah maybe. Try to delete from Obitalk first thing.
tripleV
join:2018-06-04

1 recommendation

said by Brown:

Yeah maybe. Try to delete from Obitalk first thing.

Just found out that when I called my neighbor, it is working fine, but not cellphones. This is something strange. As I rarely use this phone to call out. The symptom is when I dial, dial tone is ok, then turn into a long sound then cut off to silence, when my cellphone is ringing.
Brown
join:2018-01-21
Did you do the full (button) reset? I would do that.
tripleV
join:2018-06-04
I did, but there is no way to delete obi1xx device from Obitalk now. I don't know if that would impact. obi was allowed me to delete before, but I added it again trying to fix issue, now can't delete anymore.
Brown
join:2018-01-21

1 recommendation

I don't think Obitalk will try to communicate with it because it's not compatible with GV-SIP but I don't really know. After the reset did everything clear out of the Obi (email, password, etc.)?
DJB628
join:2018-05-28
Delray Beach, FL

1 recommendation

to talkbot
OK, I'm going to do the Auth2 process today, I'm tired of having delete my SP1 every morning and sign back in to get it to connect again.

So to make sure I do this right and once.

1) I need to FR my device
2) I need to make sure I have the Naf FW installed (Which I already do)
3) I have to make sure I have Obitalk all disabled in the Obitalk Portal ( Disable OBitalk Provisioning, OBitalk Services)
4) Then setup the Auth2 process ? (I'm assuming this can be done at anytime before or after all of the above ?)

Anything I am missing in my order, or am I good to go with this. ??
DJB628

1 recommendation

I keep getting this error every time I try to authorize my API, could this be cause bc I have 5 Gmail account and it's signing me out ?? Can I continue from where I was or do I have to start this whole process again ??
naf
join:2017-12-12

1 recommendation

said by DJB628:

The redirect URI in the request... does not match the ones authorized for the OAuth client.

Sounds like you missed the step that says "14. Copy »developers.google.com/oa ··· ayground into Authorized redirect URIs."

Should be able to just go to where google recommends to edit the redirect uris for that project.
DJB628
join:2018-05-28
Delray Beach, FL
Thanks naf, I did do it from another PC and did get a refresh token, so I'll try again later as I have to run out now, I'll keep you posted.
DJB628
to talkbot
Now that I have the refresh token, I'll disable the Obitalk settings as required, and then I'll set up the Portal with the refresh token info.

I did all the credential info first, since my Obi is connected now, once it logs my back out, I'll set it up, I just have to run out now, I'm assuming, once you have the refresh token, the setup process can be done at any time. ??
andre2
join:2005-08-24
Brookline, MA

1 edit
to naf
said by naf:

Sounds like you missed the step that says "14. Copy »developers.google.com/oa ··· ayground into Authorized redirect URIs."

There was a step, I believe this was it, where if you try to use copy and paste (as the instruction appears to suggest), it gets erased before the next step. I had to type the URL in manually instead. It took me a while to figure that out.

Edit: I'm quite sure that was the step where I had to manually type the URL in instead of copying and pasting. I remember getting that exact error message and fixing it as I described. The instructions should warn about that.
DJB628
join:2018-05-28
Delray Beach, FL
That could of been the issue, or that I have multiple accounts and the account I was using for this was not the default. I did do it again from a separate browser and was only logged into that account and it worked and did give me the refresh token this time, I did C&P the refresh token, so I can set up the OBI 100 later in the OBI Portal.
tripleV
join:2018-06-04
to Brown
said by Brown:

I don't think Obitalk will try to communicate with it because it's not compatible with GV-SIP but I don't really know. After the reset did everything clear out of the Obi (email, password, etc.)?

After hardware reset
1) email didn't clear.
2) Obitalk Service is not set to disabled, need to manually set to disabled. (not able to delete my obitalk device from Obitalk.com)
3) I am using XMPP from configureURL. as my obi110 device »fw.obifirmware.com/Enabl ··· TALK.xml

not sure if I can use GV-Sip.

The connecting tone problem (connecting without tone) only to some cellphones.

bbbc
join:2001-10-02
to talkbot

Danke naf

@naf
Thank you for the firmware
DJB628
join:2018-05-28
Delray Beach, FL

2 recommendations

to naf

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

Alright, I finished the whole process this morning, and so far all is good, I'll keep you all posted.

Thank you Naf, and all others that have helped, cheers all.
tripleV
join:2018-06-04
said by DJB628:

Alright, I finished the whole process this morning, and so far all is good, I'll keep you all posted.

Thank you Naf, and all others that have helped, cheers all.

well done, are you using »fw.obifirmware.com/Enabl ··· TALK.xml for the ConfigureURL?
DJB628
join:2018-05-28
Delray Beach, FL
Yes sir !!!
naf
join:2017-12-12

4 recommendations

said by paid2kill:

Once XMPP is actually turned off, will your custom firmware for the OBi100 still work with Google Voice?

Short answer: No.

Long answer: direct access to google voice's new GVSIP interface (for lack of a better term) would required changes to the firmware (and we don't even have a compiler, so I don't see that happening)

A slightly more indirect usage of google voice would be some sort of SIP/XMPP to GVSIP gateway (but simonics has announced their gateway will not function when XMPP is turned off, so there are no existing candidates for this as of today)

An even more indirect usage of google voice would be just setting up a GV forwarding number to a DID on a real VOIP provider and pointing the obi100 there, blah blah blah.
paid2kill
join:2018-06-27
Thank you for the response. For my use case of needing GV to SIP so that I can use a SIP softphone to make and receive GV calls it seems there are two options at this moment. (assuming XMPP is truly turned off soon)

1. Use asterisk once all the bugs are worked out by naf (who is doing an awesome job by the way)
2. Use an OBi20x as a gateway/ITSP as detailed here: »cboh.org/voip/obi/OBi_As ··· TSP.html
naf
join:2017-12-12

3 recommendations

3. use one of the thousands of obi2xxs that are wide open to the internet with default user/pass to host your own gateway
twinclouds
join:2010-06-12
San Diego, CA
I have an Obi200 using the arrynrob firmware connected to gv. Will it work as reliable as going through obitalk portal after XMPP turned off?

kevinds
Premium Member
join:2003-05-01
Calgary, AB
to naf
said by naf:

3. use one of the thousands of obi2xxs that are wide open to the internet with default user/pass to host your own gateway

I've got one, except not default user/pass.

If there are 1000s of OBi2xx units open to the internet with default user/pass, I will be surprised.. Also, isn't Obitalk.com is a requirement for GV? Wouldn't be able to register for OBiTalk without a *** code from the FXS
naf
join:2017-12-12

4 recommendations

said by kevinds:

Also, isn't Obitalk.com is a requirement for GV? Wouldn't be able to register for OBiTalk without a *** code from the FXS

Ya, someone should have made a firmware mod to allow users to input their own oauth2 credientials on the web gui instead of using obitalk... o well what do i know.
twinclouds
join:2010-06-12
San Diego, CA
to naf

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

The arrynrob firmware does not do that? I am confused?

SkOrPn7
join:2006-02-15
Tijeras, NM
to talkbot
Well today I got an email from Bill at Simonics stating that my GVGW service will stop functioning once XMPP is disabled (as you all know already). Because of this email I started my research and FINALLY discovered this 3rd party firmware (why oh why didn't I know about this gem?). I feel like Homer Simpson.... DOH!

Anyway, at this time I am still using my Obi110, but this morning tested it and sure enough incoming is not working but outgoing IS. As suggested by others I deleted the sip:BLAHBLAHBLAHDOHDOHDOH setting that I found in the classic settings of GV. And I left the Google Chat setting ticked, this is now the ONLY entry on that Settings>Phone page. I use Hangouts so it has been enabled as the go to app for years now, but I am OK with going back to the GV App IF that is recommended. My ONLY Android device is a 4 year old Samsung Galaxy S wifi ONLY tablet (SM-T700) and I am not sure I can use it as a GV phone.

I am still on stock Obihai 110 firmware, the last one released. And I am still authorized with gvgw.simonics.com and only using SP1. I have not tested incoming after deleting the sip entry though.

So, now my question becomes, did I discover this 3rd party naf firmware far too late? In other words is it too late for me to bother with installing it and setting everything up with my GV#? Google could kill my device tomorrow, or next week perhaps right?

What should be my next step please? Or is this 110 now useless to me as a GV adapter soon?

I am guessing my steps should be this below?
1. Disable Google Chats setting?
2. Download GV app and test it to see if it works on my tablet.
3. Disable ObiTalk from my 110 device and reset the device to defaults?
4. De-Authorize the gvgw.simonics gateway?
5. And plan to get a Obi200 someday down the road?

Although I have not been using this 3rd party firmware I still want to say thanks to naf for doing this for the 3rd party modding crowd. The world is so much nicer when there are options....

Best Regards
Rod
MikeInFL
join:2010-06-04
Jacksonville, FL

1 recommendation

Rod,
I believe naf firmware will not work as well once GV disables XMPP, which is expected by end of month so I've read. gvgw.simonics servers will go offline when XMPP is gone from GV.

Time to find an alternative. A new Obi or GV app.

My obi100 doesn't receive GV calls but still makes calls, but I'm expecting that to stop working soon. What I plan to do is make calls on my PC in hangouts and forward GV calls to my cellphone.

There are some free incoming call options, someone mentioned callcentric. I use truphone as my cell phone service and all incoming calls and text are free on truphone. So I forward GV to my truphone cell# and incoming calls to my GV remain free.

I may eventually get an obi202.

SkOrPn7
join:2006-02-15
Tijeras, NM
Thanks Mike in FLorida.

Yeah unfortunately I do not have any cell towers near me, not even close enough to detect service even if standing on a tall ladder on top of the house. I do have fast Internet and a strong Asus router though.

It looks like the fight to keep the Obi110 working with GV is over. Nothing I hate more than a perfectly good working device being forced into retirement. Just a complete waste of resources. Anyway, I think I have a decent ear phone type plugs with mic somewhere that I could use with the tablet and GV app. So maybe its time to sign up for that wifi beta calling, which I don't understand as I'm sure the apps have been working for years. My tablet has been ringing during GV calls like for 5 years now or more, so why we have to sign up for something that already works is over my head.

I have an account over at voip.ms but I found none of the voip services work as good as GV does for me. I'm just not interested in any of them.

I too may eventually get a Obi200 or 202 someday when it is on sale. For now its the PC and GV app in Android. Thanks for the info.
kelemvor
join:2005-09-01
Sussex, WI
to talkbot
Well, this is an 18 page thread that's been going on for over 6 months and I don't have time to read it all but I'll assume my situation is the same as many other people here. I have an Obi1xx model I've had for years. I switched to Simonics a year or so ago when Obi/Google made the service stop working. Now I see that Simonics will also be going down so need to change something.

I still need a home phone as when my kids are home and need to call someone, or when we need to call them, we need the house phones to ring. They don't have cell phones. If my wife and I are both not at home, we need to be able to call home and check in on them.

Based on that, is my only actual option to get an obi2xx device? It sounds like even the firmware here won't function once Google shuts things off in the next few days/weeks. Do we have any guarantees that the Obi2xx devices won't stop working next year and we have to go through all this over again?

The other thing that would be really cool is if GV supported a menu prompt system so someone could call our main number and get prompted for: If you want John press 1, if you want Jane press 2, etc and then it could route to the proper person's cell phone. But I don't think there's any way to do that.

Maybe all of this should get summed up into an informational sticky post or something so all the people that find this forum/thread in the next few weeks can easily see what's going on.

Anyway, Thanks!
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net

3 recommendations

said by kelemvor:

Do we have any guarantees that the Obi2xx devices won't stop working next year and we have to go through all this over again?

None at all, I'm afraid.
said by kelemvor:

The other thing that would be really cool is if GV supported a menu prompt system

Service providers like Callcentric (good prices, good support, easy to use) and Anveo (extremely aggressive prices, pay for support, interface designed for power users) have this feature. While they are not free like Google Voice, they will work with your OBi1xx long-term. If your usage is low, it might take a year or two before buying another OBi pays for itself. Switching to one of these service providers wouldn't involve an up front cost.
lchiu7
join:2018-06-29
San Ramon, CA
Well I tried the above process to update my OBI100 and while it all seemed to work it, the SIP setting for Google Voice never stuck. Not sure why but given that Google is dropping XMPP support it doesn't seem like it's worth pursuing. I was using a SPA2102 to connect to Google Voice via Simonics. I wonder when Google Voice becomes a SIP based service if there can be native support for ATA devices like that. Else I will have to buy a OBI202
excalibur26
join:2013-02-02
to talkbot
Been working since March, just went to make a call and looks like that may be that.
gtb
Premium Member
join:2016-05-16
united state

1 edit

1 recommendation

to lchiu7
said by lchiu7:

I wonder when Google Voice becomes a SIP based service if there can be native support for ATA devices like that.

GV is moving to SIP-ish, but it uses standards in ways that were not previously combined. Unless someone is going to release firmware for the OBi1xx, or SPAxxxx devices that work in an entirely new way (unlikely), you will need to use one or more of the intermediary translators from simple SIP to advanced SIP (perhaps an OBi2xx, or the Asterisk solution being developed, or some other future alternative solution).
lchiu7
join:2018-06-29
San Ramon, CA
I looked at the Asterisk solution and that seems like a bridge too far for me:-( While I do have a couple of Pi's lying around doing stuff the work is making them act as Asterisk servers seems quite complex. I think I would rather just bite the bullet and get a OBI200 or OBI202 (I have two GV lines and can't decide to make them both able to dial out)
DJB628
join:2018-05-28
Delray Beach, FL
to excalibur26
Umm interesting, Mine still working this morning. I guess they might be rolling this out now to some, thus why some are not working ?
excalibur26
join:2013-02-02
said by excalibur26:

Been working since March, just went to make a call and looks like that may be that.

Odd, because I just checked the status and it says 'connected'. I have a dial tone, I dial several numbers, some ring a few times, some ring once, then nothing.
DJB628
join:2018-05-28
Delray Beach, FL
to talkbot
Well seems like my incoming calls are fine, but if i call out it it rings, and if someone answer, I here nothing on the line. Must be something in the settings I guess.

kevinds
Premium Member
join:2003-05-01
Calgary, AB
said by DJB628:

Well seems like my incoming calls are fine, but if i call out it it rings, and if someone answer, I here nothing on the line. Must be something in the settings I guess.

One-way audio? Router settings issue..

WhyADuck
Premium Member
join:2003-03-05

1 recommendation

said by kevinds:
said by DJB628:

Well seems like my incoming calls are fine, but if i call out it it rings, and if someone answer, I here nothing on the line. Must be something in the settings I guess.

One-way audio? Router settings issue..
Not necessarily. Seems many people who have not changed any settings are suddenly experiencing this. More likely a problem or a change at Google's servers.
RonR
join:2003-10-10
Ash Flat, AR
to kevinds
said by kevinds:
said by DJB628:

Well seems like my incoming calls are fine, but if i call out it it rings, and if someone answer, I here nothing on the line. Must be something in the settings I guess.

One-way audio? Router settings issue..
I've made no changes whatsoever here. I have three Google Voice accounts using XMPP through Asterisk. A couple of days ago, I started seeing one-way audio on the first outgoing call following a period of inactivity, but subsequent calls would be fine. As of yesterday, all three Google Voice accounts now have permanent one-way audio on all outgoing calls.

FWIW, pygooglevoice access (using callbacks, no XMPP involved) is working perfectly on all outgoing calls. [pygooglevoice access requires the use of Asterisk.]

kevinds
Premium Member
join:2003-05-01
Calgary, AB
Humm.. Interesting

I'm kinda curious what a packet capture looks line on the WAN side then
nimbus22
join:2018-06-30
to talkbot
This might help people with the obi100 not receiving incoming calls. My obi00 has the naf firmware mod and was using the simon gateway. I noticed outgoing calls on sp1 were working fine but there were no incoming calls.

Calls on my sp2 port were working fine. I was using a different google voice number and this port was not using the simon gateway. It was configured with the standard google voice setting

I decided to take the simon gateway out of the picture and just rely on the naf firmware.

1) I logged into simonics and "deauthorized" my google voice account.
2) Uncheck and remove the sip blah blah info in my google voice settings. Make sure you checked off forwarding calls to google chat.
3) Go to the obitalk settings page and deleted the simonics configuration in my obi100 settings. Reconfigure the obi100 to use the google voice settings.

Things are working fine now but may change in a few days.
gtb
Premium Member
join:2016-05-16
united state
to WhyADuck
said by WhyADuck:

Not necessarily. Seems many people who have not changed any settings are suddenly experiencing this. More likely a problem or a change at Google's servers.

By any chance are you (or those other people) trying to use/negotiate any codec other than G.711u or OPUS? There were some reports that using any other codec would result in various forms of silence (I do not recall the details), and this was true even for the new SIP(based) service using some alternative devices. In any case, it was strongly suggested things would be (starting to) change at Google regarding Voice services around this time period, so I can't claim I am really all that surprised to start to see some impacts rolling through.
DJB628
join:2018-05-28
Delray Beach, FL

1 edit
Nope, I'm using only GV, and the Naf FW along with the OAuth2 process.

Maybe I should save settings, and do a Factory reset again to see ??

Naf, any suggestions on the calling out issues ??

BTW, on the OBItalk forums, others are reporting same issues. See below in quotes.

"" Reconfigure your OBi in the same way that you configured it before.

If you want to use your OBi100 with Google Voice, you need to follow the directions at obifirmware.com.

Note that today many users are reporting one-way or no audio issues with Google Voice.""
SeanR7
join:2018-05-17
said by DJB628:

BTW, on the OBItalk forums, others are reporting same issues. See below in quotes.

Note that today many users are reporting one-way or no audio issues with Google Voice.""

Yup and they are reporting the same issues with an Obi200 so SIP is having a problem also not just XMPP.
rmdir
join:2003-03-13
Chicago, IL
Finally bit the bullet and ordered a 200 last night. I have already reconfigured my 110 with naf firmware. Problem I'm having is phone dials out, I hear called party respond (answering machine so I don't drive people batty) but then after a second or so I lose sound. Obi status page still shows a call in progress until I hang up. Once I get the new one in and configured, do I just uncheck the Google Chat option in Google Voice to force SIP calling? I spent way too much time on this thing already, I just want it to work again with my cordless phone.
gtb
Premium Member
join:2016-05-16
united state

1 recommendation

said by rmdir:

Once I get the new one in and configured, do I just uncheck the Google Chat option in Google Voice to force SIP calling?

As I understand it, when you register a new OBi2xx device with GV, and let it do its magic (it may have to reboot/reload firmware one or more times) it will automatically transition your GV service and the OBi2xx to the new SIP (based) protocol. You likely should delete the GV connection on your OBi1xx device first to avoid it trying to connect via GV XMPP while this is going on.

A few people have reported that with all the reboots/reloads that happen during initial config (especially if you are changing configurations rapidly to make things like it was before) you can end up in the Google "penalty box" for too many registrations in too short a time, so you may need to have some patience for things to settle down (I believe someone here said you have to wait around 10 minutes).

And then there are a few reports of random failures during the conversion(s), most of which have been claimed to be corrected by a full factory reset of the device along the way (every company has a few random upgrade failures). Some of those failures seem to leave the device still using the deprecated XMPP protocol, some of those failures seem to have left the device and GV in some inconsistent state such that they never connect at all.

So, all one can say is that your experience will vary.

jsolo1
Premium Member
join:2001-07-01
PRIL

1 recommendation

to rmdir
@rmdir

Assuming you want to retain full control over the obi box, do not let it connect to the internet until you've flashed the obi20x naf firmware to it and disabled all live update and obitalk functions.

Specifically, first 4 options under system management/auto provisioning, and then obitalk service under voice services.

The firmware allows for your own oauth2 credentials to be used, completely eliminating the need to use obitalk portal. I'm not 100% sure what happens if you flash the naf firmware but use obitalk to provision the gv accounts. It may or may not push its own firmware to the device.

More details and downloads @ »www.obifirmware.com/

I have 2 boxes (200/202) working without issue which were set up entirely using the manual process. The same outbound calls which fail using asterisk and simonics go through without issue.
SeanR7
join:2018-05-17
I just noticed that the ones reporting using an Obi200 were still on google chat XMPP, they just need to update to the latest firmware to convert to SIP.
gtb
Premium Member
join:2016-05-16
united state
said by SeanR7:

I just noticed that the ones reporting using an Obi200 were still on google chat XMPP, they just need to update to the latest firmware to convert to SIP.

According to various reports around the 'tubes, the auto-conversion (to the newer firmware and XMPP to SIP (based)) has failed for some of the people some of the time, leaving things in unusual states. Doing the factory resets and getting the latest firmware do seem to mostly work (eventually). I do not think any of the failures (or the successes) have been sufficiently instrumented to be able to compare and contrast to know what the issues were. At least a few cases I saw pass by were reported to occur at the same time that other parts of the Obihai site itself was experiencing different random failures (someone guessed that it might have been due to the loads of the various conversion processes that may not have scaled well to lots of people trying to make changes all at around the same times). I sort of expect there is going to be a long tail linger issue where some people are using certain network gateways/firewalls/providers that are going to need some adjustment moving from the XMPP to SIP based protocols.
rmdir
join:2003-03-13
Chicago, IL
to jsolo1
I'm going to assign a fixed IP address so it doesn't go through my VPN, and I'm not going to use it as a router. It figures a half hour after I type my question I get an incoming call on it the 110 and it works fine. Outgoing seems to be the problem, with not being able to hear after a few seconds.
DJB628
join:2018-05-28
Delray Beach, FL
to jsolo1
Dos this really make a difference, worst case if he's not happy with the Obitalk service, he can always reset his device, and load the Naf FW later ?

I myself also just bit the bullet and purchased a OBI 202 at a good price. I'll decide what I'll do when I received it to see what I do with the device.

I'm all ears from those to let me decide to load naf from the get go or not. as long as I'm able to call out, LOL.

jsolo1
Premium Member
join:2001-07-01
PRIL

1 recommendation

If the device updates to the newest stock firmware, there is no going to the naf firmware. This firmware now checks for signature. Naf firmware is based on the latest stock 5859 but remains unsigned and offers a bit more functionality. Not to mention you can downgrade if need be.
Anon8d3d5
@rr.com
to twinclouds
Anyone have a solution to the one-way audio problem? I just upgraded my Obi 100 to Naf sucessfully and went through the OAuth procedure. I have the same problem whether I use SIP or XMPP -- I can make an outgoing phone call, hear the ringing signal, and the first bits of audio from the called party, but then silence. My audio transmits to the calling party fine.

Thanks!
Brown
join:2018-01-21

1 edit
to Anon8d3d5

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

said by: Anon8d3d5
Anyone have a solution to the one-way audio problem? I just upgraded my Obi 100 to Naf sucessfully and went through the OAuth procedure. I have the same problem whether I use SIP or XMPP -- I can make an outgoing phone call, hear the ringing signal, and the first bits of audio from the called party, but then silence. My audio transmits to the calling party fine.

See here: »Obihai OBi20x/30x + OBi1000 + OBi50x + OBi2000 firmware mods
DJB628
join:2018-05-28
Delray Beach, FL
to jsolo1
So what is the proper process of loading the Naf firmware before it updates, don't I need to connect it to the IP portal to flash it, and if I do won't it automatically update the OBItalk new FW.

and the FW for the 202 is not Naf, it's Arrynrob7 ??

jsolo1
Premium Member
join:2001-07-01
PRIL
Is there a difference? It's my understanding naf made the mods and called it arrynrob7?

If you want to avoid the obivirus... err portal, you must use your own oauth2 credentials. Instructions begin on page 3 of »www.obifirmware.com/OAuth2/

Armed with your client_id, secret, and refresh token you can continue.

Rather than recreate the wheel I'll copy and paste someone else's instructions (brg's) from an earlier discussion.

----------
(1) Opened the new Obi200 box
(2) Pulled my modem cable from the router: no Internet on my network.
(3) Plugged in Obi200 (into router)
(4) navigated to it; installed new firmware naf/arrynrob7
(5) turned off the following:

a) Auto Firmware Update
b) LUA Script Update
c) ITSP Provisioning
d) OBiTalk Provisioning

e) set OBiTALK Service Settings = disabled (under voice services)
(6) Reboot

Confirmed that OBiTALK Service Status: Disabled

So, to activate GV via SIP, sans Obitalk, I understand that my next step is to point the Obi to that .xml file (page 2 of »www.obifirmware.com/OAuth2/ ). Correct? And if I can use SP1 I can just use the hosted version rather than one on my own PC...

------------

The magic happens after the final reboot after applying the xml file. Upon first login to google voice your account will be transitioned to gvsip.
DJB628
join:2018-05-28
Delray Beach, FL
OK, thanks

The only thing I can't find is the LUA script Update under System Management/Auto Privisioning/ Is that because I'm looking in the settings of my OBI 100, since I have not received my 202 yet ?? or am I missing this somewhere.

1) Also since the OBI 202 comes with 2 port, I assume, for the 2nd line, I have to setup the oAuth 2 process for the second line also with my other GV number ??

2) How do I know if my GV has been changed to SIP ??

brg
Premium Member
join:2001-01-03
Chicago, IL
said by DJB628:

OK, thanks

The only thing I can't find is the LUA script Update under System Management/Auto Privisioning/ Is that because I'm looking in the settings of my OBI 100, since I have not received my 202 yet ?? or am I missing this somewhere.

Corrrect. What @jsolo1 posted above, as he noted, was something that I quickly threw-together for my own use. It describes what I did to keep Obi/Polycom's prying-eyes out of my just-opened Obi200. The Ovi100 has different options and I don't see "LUA script Update." You will only find the other three on an Obi100.

I don't have a 202, so I can't help with that question. And I haven't taken the trip to SIP land yet myself so I can't help you with (2) either.

jsolo1
Premium Member
join:2001-07-01
PRIL
From what I can tell, the auto provisioning subsection on the 202 is the same as the 200. Main difference is the router configuration section and 2 PHx parameters.

I don't have a 100 unit so can't make any comparisons.

1) Each SPx slot using gv must have a unique refresh token. You can use the same client_id/secret to generate the token. Also each gv account must have a unique AuthUserName (under voice services). Look in the obi20x firmware thread where a posted a sample xml file for sp4.

2) Look in the list of forwarding numbers in the legacy site. If it says SIP: xxxxxxxxxxxxxxxxxxxxxxxxxxxx your account has been converted.

brg
Premium Member
join:2001-01-03
Chicago, IL
said by jsolo1:

From what I can tell, the auto provisioning subsection on the 202 is the same as the 200. Main difference is the router configuration section and 2 PHx parameters.

I don't have a 100 unit so can't make any comparisons.

Yeah; that's what I'm responding to. @DJB628 was looking at what I'd said I turned off on the =200= and couldn't find it all on his =100=. Looking at my 100 I can't find reference to "LUA provisioning" (at least not where I find the other forms of provisioning) so I think it is missing from a 100 compared to a 200.
DJB628
join:2018-05-28
Delray Beach, FL
Thanks

Before I do this when my new device arrives, just to make sure you are not having issues with the dialing out no sound like my OBI 100??

brg
Premium Member
join:2001-01-03
Chicago, IL
said by DJB628:

Thanks

Before I do this when my new device arrives, just to make sure you are not having issues with the dialing out no sound like my OBI 100??

Not 100% clear what you are asking. The suggestions to "turn all provisioning and Obitalk access off" relates to preventing Obihai/Polycom from automatically installing a version of their firmware which version prevents you from then installing (1) "old" versions of FW or (2) "3rd party" versions of FW. Using versions of the 3rd party firmware that we are discussing maintains your ability to at least partially configure the Obi device manually (particularly when it comes to GV stuff). If Obihai/Polycom auto-provisions the newest version of their FW on your device because you've left the door open, you can then =only= implement/modify GV via "Obitalk." Some of us don't want to be so limited.

Whether GV calling works is a completely separate issue. It may well be that GV calling on an Obi200 with the newest Obihai/Polycom FW configurable only through Obitalk works just fine. That's not where I'm at and I have no comment on that, but you can certainly go down that path. What I am describing allows you to do down the path of 3rd party FW and manual configuration of GV. It is definitely more complicated. But, choice is good...
DJB628
join:2018-05-28
Delray Beach, FL
I'm talking about my OBI 100, when I did the OAuth2 process for it, when I dial out, it connects then the call goes silence, so I'm guessing this has nothing to do with OAuth2 process, and more with Google doing something. others are having the same issue too

brg
Premium Member
join:2001-01-03
Chicago, IL

1 recommendation

said by DJB628:

I'm talking about my OBI 100, when I did the OAuth2 process for it, when I dial out, it connects then the call goes silence, so I'm guessing this has nothing to do with OAuth2 process, and more with Google doing something. others are having the same issue too

That's almost certainly because XMPP GV is broken. And your 100 can't directly work with the new SIP-based GV that is being rolled out, replacing the old XMPP-based GV that was supported by the 100 (and the Simonics gateway).
gtb
Premium Member
join:2016-05-16
united state
said by brg:

That's almost certainly because XMPP GV is broken.

There are a couple of reports that suggest that even GV using SIP is having some related silence issues. And while in one case I saw pass by it turned out the individual was still using XMPP, there are some other reports that do not seem to be so easy to dismiss (unless it turns out the other party was using GV and XMPP, I guess).

brg
Premium Member
join:2001-01-03
Chicago, IL
Oh, I wouldn't doubt that at all (that even Obi SIP-GV is having issues). It's in teething mode.

I'm in a holding pattern: business as usual for inbound with GV forwarding to my CC DID terminating directly to a PAP2T-NA with attached 2-line cordless analog phone. Outbound I'm using Hangouts and the GV website callback, and/or the occasional call-my-GV-number callback. Works for me; not much inconvenience. I make few calls...
DJB628
join:2018-05-28
Delray Beach, FL
to Anon8d3d5
In other words, as BROWN mentioned in the above link he posted, for now if you want to make an outgoing call, you have to do the below first

"" To successfully make a call you can dial your own GV number and wait for it to pickup then press 2 and then dial the number you wish to make followed by the # key. ""
AZ Kid
join:2018-05-24
Mesa, AZ
I'm having the same issue now with my OBi110 as BROWN mentioned earlier, a one-way audio issue on outbound calls.

Incoming calls are fine.

I set up my Obi110 with the NAF file and the OAuth procedure provided earlier here.

For outbound calls the incoming called party's audio will cut out after a half-second; using for example a fax number, the incoming fax chirp will go silent after a half-second, or a call for example to the Universal Time Master Clock [202-762-1401] will not return any audio.

But, I can also: "successfully make a call you can dial your own GV number and wait for it to pickup then press 2 and then dial the number you wish to make followed by the # key."

I don't find "pressing 2" to be an issue big enough to warrant purchasing a newer OBi2xx.
OZO
Premium Member
join:2003-01-17
It's not a problem with OBi100 or any other OBi devices. This problem was created by Google braking XMPP support . I've been running FreeSWITCH for many years and now I have one-way audio when making all outbound calls. Other party can hear me, but I can hear nothing...

That means, purchasing OBi200 will not help you unless you want to apply modified FW, generate OAuth tokes (requires quite a few careful steps) and perhaps converting your new OBi200 to GV-SIP. With now broken XMPP I guess it's the only way to fix the new (and artificial, IMHO) problem created by Google .

waffull
join:2000-02-15
West Dover, VT

2 recommendations

Obi20x devices are fully Google Voice SIP capable. No mods or any sort required.

That said, if you want to keep running your own PBX, there's a patch for IncrediblePBX, not to mention Asterisk on some basic platforms. But all current Obi devices/phones are 100% compatible. The 100's have long been EOL.
AZ Kid
join:2018-05-24
Mesa, AZ
to OZO
To OZO

Yes, I understood, from reading earlier posts here, the outgoing call issue is not with the OBi110 device but with Google not now supporting XMPP. But it still works on outbound calls if I dial my GV number then 2 then the outgoing number followed by the # key - per the GV voice prompts.

But I read on another link that the OAuth token I'm using on my OBi110 can be used on a newer OBi2xx if I decide to purchase one.

This discussion mentioned by BROWN at the entry on 2018-Jul-4 7:26 pm:

»Obihai OBi20x/30x + OBi1000 + OBi50x + OBi2000 firmware mods

Fortunately, I saved my token/password in a file.

Thank you!
AZ Kid
to waffull
The 100s have long been EOL, but today I just successfully faxed a document hooking up a fax machine to my OBi110 and using the "press 2" to make an outbound call, as I mentioned earlier.

I called my GV#, pressed 2, dialed the fax number and the fax was successful.

Thanks!

waffull
join:2000-02-15
West Dover, VT
You're on borrowed time now.

The point was that this was NOT accurate:
said by OZO:

That means, purchasing OBi200 will not help you unless you want to apply modified FW, generate OAuth tokes ...

said by AZ Kid:

The 100s have long been EOL, but today I just successfully faxed a document hooking up a fax machine to my OBi110 and using the "press 2" to make an outbound call, as I mentioned earlier.

I called my GV#, pressed 2, dialed the fax number and the fax was successful.

Thanks!

AZ Kid
join:2018-05-24
Mesa, AZ
My point was my OBi110 is still alive when you made your last point: "The 100s have long been EOL."

Thanks to this site and those who provided the:
»www.obifirmware.com/OAuth2/
OZO
Premium Member
join:2003-01-17
Try to avoid OBi200 with stock FW 5853+ due to x509 signature check in stock upgrade. Otherwise you will not be able to use / apply modified FW mentioned in the link you provided.
naf
join:2017-12-12

1 recommendation

said by OZO:

Try to avoid OBi200 with stock FW 5853+ due to x509 signature check in stock upgrade. Otherwise you will not be able to use / apply modified FW mentioned in the link you provided.

...unless you ask nicely
OZO
Premium Member
join:2003-01-17
You think it's possible to downgrade 5853?
utsc
join:2017-12-08
to talkbot

Obi110 One Way Audio Firmware Mod Discussion

@naf

Could you be very very kind and generous to patch the OBi110 Mod Firmware to resolve the one way audio issue when you have time as I realize that you're working hard on many issues

brg
Premium Member
join:2001-01-03
Chicago, IL

1 recommendation

The one-way audio problem is an issue with Google, not the Obi firmware.

Google is stopping using "XMPP" for GoogleVoice, and is converting to its flavor of SIP. One-way audio is happening because XMPP is being slowly turned off.

The Obi110 only supports the old, soon to be shut-down, "XMPP" method of calling. The Obi110 does =not= support, and as far as I know cannot be made to support, the new Google flavor of SIP.

So, as far as I know, no, @naf will not be able to "patch the OBi110 Mod Firmware to resolve the one way audio issue."

[All of this is made quite clear by the various threads in this forum, but there you go: the condensed version].

Time to buy a new Obi device that supports the new Google flavor of SIP. Or, time to pay for phone service...
mazilo
From Mazilo
Premium Member
join:2002-05-30
Lilburn, GA
said by brg:

The Obi110 does =not= support, and as far as I know cannot be made to support, the new Google flavor of SIP.

I.e., the new Google flavor SIP is not a standard SIP, isn't it?
SArcanine
join:2009-11-09
New York

1 recommendation

to brg
said by brg:

The one-way audio problem is an issue with Google, not the Obi firmware.

Google is stopping using "XMPP" for GoogleVoice, and is converting to its flavor of SIP. One-way audio is happening because XMPP is being slowly turned off.

The Obi110 only supports the old, soon to be shut-down, "XMPP" method of calling. The Obi110 does =not= support, and as far as I know cannot be made to support, the new Google flavor of SIP.

So, as far as I know, no, @naf will not be able to "patch the OBi110 Mod Firmware to resolve the one way audio issue."

[All of this is made quite clear by the various threads in this forum, but there you go: the condensed version].

Time to buy a new Obi device that supports the new Google flavor of SIP. Or, time to pay for phone service...

It probably can be, but it would require a masochist programmer to do it.
SeanR7
join:2018-05-17
to brg
said by brg:

The one-way audio problem is an issue with Google, not the Obi firmware.

And some Obi200's were having the one-way audio problem also right?

So far the only way to fix the one-way audio problems with the Obi200's was to upgrade to the latest firmware through Obitalk am I right? So everyone with an Obi200 that is having one-way audio problems and doesn't want to upgrade to the latest Obi firmware or even use the Obitalk portal will not be able to fix their one-way audio problem?

I read that you can turn off firmware updates within the Obi200, do you know if arrynrob's firmware for the Obi200 (the one at this link »www.obifirmware.com) is also prone to having one-way audio problems? I'm asking for those that don't want to update to the latest Obi200 firmware through Obitalk and want to turn off auto updates.

jsolo1
Premium Member
join:2001-07-01
PRIL
Anyone on the XMPP platform is having the one way audio issue. Doesn't matter which obi they're using. Even those not using an obi (freepbx/motif) are having the same issues.

To fix the problem you need to be on the gv sip platform. In terms of ATA's, the only way to achieve that is to be on a current (5859+) obi20x firmware with a properly provisioned device - be it manually or through the obitalk portal.

The issue with the official 5859+ is it now verifies signatures before flashing. So no downgrading, and no flashing of the naf firmware.

So rather than speculating, tell us what you're trying to achieve.
SeanR7
join:2018-05-17
to brg

Re: Obi110 One Way Audio Firmware Mod Discussion

said by brg:

One-way audio is happening because XMPP is being slowly turned off.

So that is what is being said but how do we know that is what is happening? How do we know that is the reason for one-way audio and not something else entirely? Like google doing one-way audio on purpose to get people to upgrade to sip on their own.
SeanR7
to jsolo1
said by jsolo1:

So rather than speculating, tell us what you're trying to achieve.

Turning off firmware auto updates within an Obi200 when I first receive it in the mail so I wont be stuck with only Obi firmware on my Obi200 device that I wont be able to downgrade or use any 3rd party firmware I want to use in the future. And not having one-way audio issue.
This will be only if and when XMPP is completely shut off will I buy a Obi200.
SeanR7
to jsolo1
said by jsolo1:

So rather than speculating, tell us what you're trying to achieve.

E.T. Phone Home.

jsolo1
Premium Member
join:2001-07-01
PRIL

1 recommendation

to SeanR7
Review the last few pages of this thread - »Obihai OBi20x/30x + OBi1000 + OBi50x + OBi2000 firmware mods

All of your concerns are addressed several times over.

P.s. Don't forget to disable obitalk too, in both system management and voice services.
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net

2 edits
to tripleV

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

Today when I attempt to make an outgoing call (even to my own Google Voice number) there is a brief pause, then I hear a message that says "We could not complete your call. Please try again."

My 110 with naf7 was OBiTALK-configured so I factory reset it and manually configured it. That did not change the symptoms.

Incoming calls still work.

EDIT: no longer hearing this error message as of 2018-07-12. Back to one-way audio on outgoing calls, the workaround of dialing your own number and pressing 2 works.
SeanR7
join:2018-05-17
to jsolo1

Re: Obi110 One Way Audio Firmware Mod Discussion

said by jsolo1:

Review the last few pages of this thread - »Obihai OBi20x/30x + OBi1000 + OBi50x + OBi2000 firmware mods

All of your concerns are addressed several times over.

P.s. Don't forget to disable obitalk too, in both system management and voice services.

I haven't been reading that thread because I didn't want to do OAuth2, I want it to be Easy. I may have to go through Obitalk portal but I don't want to be locked into Obi's firmware and not be able to use any 3rd party firmware.
Stewart
join:2005-07-13

5 recommendations

said by SeanR7:

I want it to be Easy.

Unlike the Staples version, your Easy button is labeled "Pay Now". After clicking it, you'll have phone service from a reputable provider that works with your present VoIP devices, as well as those you may acquire.

kevinds
Premium Member
join:2003-05-01
Calgary, AB

3 recommendations

And it isn't un-affordable... VoIP service is really cheap...

Seriously, $3/month can be plenty ($0.85 for a DID and 0.01/minute), depending on usage, for easy phone service that you don't have to worry about Google f*cking up with non-standard changes.
SeanR7
join:2018-05-17

1 recommendation

to Mango

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

said by Mango:

Today when I attempt to make an outgoing call (even to my own Google Voice number) there is a brief pause, then I hear a message that says "We could not complete your call. Please try again."

My 110 with naf7 was OBiTALK-configured so I factory reset it and manually configured it. That did not change the symptoms.

Incoming calls still work.

That is happening to me but not all the time, I can still call my GV number most of the time, so it is happening intermittently. I think when it first started happening I wasn't hearing anything (I wasn't hearing "We could not complete your call"), the call to my GV # just wouldn't go through or I would hear a beep or something. I'll pay attention to what I hear happening next time it happens.
naf
join:2017-12-12

1 edit

3 recommendations

quick note on using an obi1xx to connect to an asterisk gvsip trunk using tls and srtp... (you know, in case that whole XMPP thing doesn't work out :-P)

the obi100 hardcodes a sdes key lifetime of 2^20, but asterisk is hardcoded to reject anything below 1800000 (why?), so you gotta change one or the other...

also, ITSP Profile n > RTP> X_UseSSL only applies to direct XMPP GV connections. (guess that means no DTLS), use SPx Service > X_SRTP instead

brg
Premium Member
join:2001-01-03
Chicago, IL

1 edit
to mazilo

Re: Obi110 One Way Audio Firmware Mod Discussion

said by mazilo:
said by brg:

The Obi110 does =not= support, and as far as I know cannot be made to support, the new Google flavor of SIP.

I.e., the new Google flavor SIP is not a standard SIP, isn't it?
From what I have read: "not exactly." If GoogleSIP were pure SIP you could use any off-the shelf ATA/Softphone/PBX. Can't do that. See @phonesimon posts for details.
brg

2 edits

1 recommendation

to SArcanine
said by SArcanine:

It probably can be, but it would require a masochist programmer to do it.

Well, OK, maybe -- @phonesimon cracked the code during his beta of his new GVGW (deploying it at a server-level that turned out to be insufficiently scalable) -- but it would hardly amount to a "patch" of a 1XX series Obi, and I'm not fully convinced that even a masochist programmer could do it. And see @naf's very recent note in this thread. Might as well try it on a Grandstream or a PAP2T, eh?
brg

1 edit
to SeanR7
said by SeanR7:
said by brg:

The one-way audio problem is an issue with Google, not the Obi firmware.

And some Obi200's were having the one-way audio problem also right?

So far the only way to fix the one-way audio problems with the Obi200's was to upgrade to the latest firmware through Obitalk am I right? So everyone with an Obi200 that is having one-way audio problems and doesn't want to upgrade to the latest Obi firmware or even use the Obitalk portal will not be able to fix their one-way audio problem?

I read that you can turn off firmware updates within the Obi200, do you know if arrynrob's firmware for the Obi200 (the one at this link »www.obifirmware.com) is also prone to having one-way audio problems? I'm asking for those that don't want to update to the latest Obi200 firmware through Obitalk and want to turn off auto updates.
I believe some Obi200's were having the one-way audio problem. One reason why I did not (and haven't yet) deployed the Obi200 that I bought a while ago that is sitting in a box on a shelf.

Yes you can and I have myself turned off firmware updates on my currently unused Obi200. I have also installed the arrynrob firmware from »www.obifirmware.com.

I don't know if that combo exhibits 1-way audio because I have not yet installed it. I'm waiting for clear confirmation that all is working fine. But turning off firmware updates and installing arrynrob firmware is a no-risk proposition: if you wanted to you could always later turn updates back on and join Polycom/Obi on the dark side. I choose not to do that myself...
brg
to SeanR7
said by SeanR7:
said by brg:

One-way audio is happening because XMPP is being slowly turned off.

So that is what is being said but how do we know that is what is happening? How do we know that is the reason for one-way audio and not something else entirely? Like google doing one-way audio on purpose to get people to upgrade to sip on their own.
I freely admit that =I= don't know, personally, but what I stated is what is being opined by lots of very, very smart folks in this forum and other similar forums. Feel free to reject the premise and strike out to find the true answer.

I have no idea what you are trying to say in your last sentence.
brg

3 recommendations

to SeanR7
said by SeanR7:
said by jsolo1:

Review the last few pages of this thread - »Obihai OBi20x/30x + OBi1000 + OBi50x + OBi2000 firmware mods

All of your concerns are addressed several times over.

P.s. Don't forget to disable obitalk too, in both system management and voice services.

I haven't been reading that thread because I didn't want to do OAuth2, I want it to be Easy. I may have to go through Obitalk portal but I don't want to be locked into Obi's firmware and not be able to use any 3rd party firmware.
Quite the attitude. "I don't want to be bothered: you guys should spoon-feed me so that I don't have to read and understand anything, so I that can save a buck or two."

Nah; we all had to read the thread to figure it out and join the club. You want to join the club too? Read the thread.

Or, use the "Easy" button that Stewart suggests: there are many highly-regarded VoIP providers that -- for a price -- will ship you a pre-configured ATA and all you have to do is plug it in. Or, use your current ATA with any number of highly-regarded yet very inexpensive VoIP providers. Total cost to you? A few bucks now and then.

Me: I do both. I read the thread and did the light-lifting (others did the heavy lifting) and try to get things working not so much because it is free, but because it is fun; because it is a hobby. In addition to the free GV that I have happily used over the years I also have -- and pay for -- maybe 9 other VoIP providers. I have paid-for DIDs with several such providers and have small accounts for outgoing service with many others. Do I need all that capability? Hell no. But it's fun and it is a small way of giving back to a very active, supportive, responsive community and niche of providers.
phonesimon
join:2014-10-08
Pennsylvania
to brg
said by brg:
said by mazilo:
said by brg:

The Obi110 does =not= support, and as far as I know cannot be made to support, the new Google flavor of SIP.

I.e., the new Google flavor SIP is not a standard SIP, isn't it?
From what I have read: "not exactly." If GoogleSIP were pure SIP you could use any off-the shelf ATA/Softphone/PBX. Can't do that. See @phonesimon posts for details.
The Obi1xx already has the oauth2 token exchange code built in to it. So it has that going for it over, say, a Cisco ATA.

Modifying the SIP stack to support Outbound and token-based REGISTER would be a big challenge.

I don't think it can do rtcp-mux.

Since the source code isn't available, there's not really any point in discussing it anyway.
naf
join:2017-12-12

1 recommendation

said by phonesimon:

Since the source code isn't available, there's not really any point in discussing it anyway.

Since a *compiler* isn't available, even if they handed you the source...

ETA: And just for argument's sake, the 100 claims it could do rtcp-mux. See ITSP Profile n > RTP > X_RTCPMux
AZ Kid
join:2018-05-24
Mesa, AZ
Would a compiler for and the source code from an OBi 2xx be available and be that much different to be able to get the new google SIP to work on an OBI1xx?

I know little about coding other than some long-ago pascal & BASIC college courses and some simple JavaScript/VBA junk. Ha!

jsolo1
Premium Member
join:2001-07-01
PRIL
^^Sure... Everything needed is readily available..... at obihai. Maybe get one of their programmers to leak the code... yeah..
AZ Kid
join:2018-05-24
Mesa, AZ
Then why your comment on 12-Dec-2017 referring to this link: »randywestergren.com/reve ··· -part-1/

Which states products contain shared code and in the comments asks why Obihai hasn’t released their LINUX based code as required by the GPL?
phonesimon
join:2014-10-08
Pennsylvania

2 recommendations

You assume the part that matters falls under an open-source license. Just because it runs embedded Linux and busybox does not mean that the rest is licensed such that anyone is entitled to the source.

But if you'd like to hire a lawyer to write to them, you may find otherwise, in time. Or you could spend the same money on a new ATA of any brand and several years of VoIP service.
nanga
join:2014-07-26
Perry Hall, MD
to talkbot

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

Simple question, can't find answer as too many discussions going on....I have OBI110 with obifirmware.com and OAUTH setup. I understand Google made some changes late June, early July and that is causing my OBI110 outgoing call to not work.
Do we have solution for this change of OBI110? If not, do we have alternative or my best bet to is buy new OBI? Please help.

bitstopjoe
join:2009-08-02
Pen Argyl, PA
Aso of right now, the only workaround is to dial your own GV number, press 2, dial the number you wish to call followed by the # key. I made a speed dial on my phone ( with pauses) for the numbers I dial the most. Once XMPP goes away, so does this workaround. Hope this helps

Joe
mazilo
From Mazilo
Premium Member
join:2002-05-30
Lilburn, GA
to nanga
said by nanga:

Simple question, can't find answer as too many discussions going on....I have OBI110 with obifirmware.com and OAUTH setup. I understand Google made some changes late June, early July and that is causing my OBI110 outgoing call to not work.
Do we have solution for this change of OBI110? If not, do we have alternative or my best bet to is buy new OBI? Please help.

I don't know if this OBI110 fix for one way audio problem(can't hear response voice) will help or not.
excalibur26
join:2013-02-02
to nanga
said by nanga:

Simple question, can't find answer as too many discussions going on....I have OBI110 with obifirmware.com and OAUTH setup. I understand Google made some changes late June, early July and that is causing my OBI110 outgoing call to not work.
Do we have solution for this change of OBI110? If not, do we have alternative or my best bet to is buy new OBI? Please help.

This:
said by jsolo1:

...

So for now, the working solution has been to double dial. First, using a speed dial, dial the gv number, then press 2, then dial the number I actually want to call followed by pound.

So on a obi1xx box (until xmpp stops working entirely). You could program one of the buttons on your phone to dial your gv #, add some pauses (3-5 seconds worth should be enough), then the #2. Instruct callers to wait for the message "please enter the phone number you'd like to dial followed by the pound key" before dialing the desired number.

Other solutions will be needed once xmpp is completely dead.

nanga
join:2014-07-26
Perry Hall, MD
to bitstopjoe
Thanks for the tip. As soon as I dial my GV number, it goes to my voice mail. How to fix this?
andre2
join:2005-08-24
Brookline, MA
Log into your GV account. Under Legacy, Settings, Phones, click on "Edit" under the forwarding phone number you're calling from, then set "Voicemail Access" to No.
nanga
join:2014-07-26
Perry Hall, MD
Name:
Google Talk

Voicemail Access: Help_dark
Direct access to voicemail when calling your Google number from this phone?
Yes (default for mobile phones)
PIN required (for added safety)
PIN not required (for added convenience)
No (requires pressing star during greetings -- default for non-mobile phones)

--> Last one NO is already checked. Still not working.
taoman
Premium Member
join:2013-09-13
Seattle, WA
said by nanga:

Last one NO is already checked. Still not working.

And you pressed the * key during your GV voicemail greeting? If so, what happened?
nanga
join:2014-07-26
Perry Hall, MD
So I have my phone connected with obi that has GV number. When I call GV number it immediately goes to voice mail. NO greetings because I am calling from the same phone.
I guess I had lot of voice mail. When I cleared all voice mails, now when I call my GV number, I hear - You have no voice mail. Press 2 to place a call....so I guess I am in right path.
Now something new.....no matter how many times or longer I press 2, GV does not recognize my input. Do I need to change something on DTMF settings?
taoman
Premium Member
join:2013-09-13
Seattle, WA
to nanga

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

said by nanga:

Do I need to change something on DTMF settings?

Possibly. Does it happen when calling other numbers that require DTMF input?

You could try changing Service Providers-->ITSP Profile X General-->DTMFMethod to InBand from the default Auto.
SeanR7
join:2018-05-17
to brg

Re: Obi110 One Way Audio Firmware Mod Discussion

said by brg:
said by SeanR7:
said by brg:

One-way audio is happening because XMPP is being slowly turned off.

So that is what is being said but how do we know that is what is happening? How do we know that is the reason for one-way audio and not something else entirely? Like google doing one-way audio on purpose to get people to upgrade to sip on their own.
I freely admit that =I= don't know, personally, but what I stated is what is being opined by lots of very, very smart folks in this forum and other similar forums. Feel free to reject the premise and strike out to find the true answer.

I have no idea what you are trying to say in your last sentence.
My google chat was removed from legacy gv sometime today. I tried to call our home landline and it wouldn't ring, then I tried to call out to my gv # and it wouldn't go through. Then I checked my legacy gv and chat was gone. So no more XMPP for me.

jsolo1
Premium Member
join:2001-07-01
PRIL
The end is here! Note the date it stopped working on. No more google chat on my account either.
naf
join:2017-12-12

1 recommendation

said by jsolo1:

The end is here! Note the date it stopped working on. No more google chat on my account either.

ya your boy Aaron G probably just though month 7 was June.

meanwhile, who's gonna set up an asterisk server to relay GV to all these obi1xx's?

brg
Premium Member
join:2001-01-03
Chicago, IL
to jsolo1
said by jsolo1:

The end is here! Note the date it stopped working on. No more google chat on my account either.

Same here. It was definitely there a week or so ago...

WhyADuck
Premium Member
join:2003-03-05
Yup, gone on every account I checked, too.
nanga
join:2014-07-26
Perry Hall, MD
me too. Is that mean OBI is brick for GV purpose even the supported device?

brg
Premium Member
join:2001-01-03
Chicago, IL

2 recommendations

said by nanga:

me too. Is that mean OBI is brick for GV purpose even the supported device?

The Obi2XX is not a brick for GV purposes.
nanga
join:2014-07-26
Perry Hall, MD
Thanks. I will buy that, hopefully comes back in $35. One thing I do not understand - is there hardware difference between 110 and 2XX? If not, isn't it possible to revive obi110 if some third party can write new firmware similar to obifirmware.com?
gtb
Premium Member
join:2016-05-16
united state
said by nanga:

One thing I do not understand - is there hardware difference between 110 and 2XX?

Yes (different CPU and external devices). In theory it is entirely possible to develop new firmware for the legacy devices, but I doubt anyone is going to do so unless you throw a lot of money at them.

kevinds
Premium Member
join:2003-05-01
Calgary, AB

1 recommendation

said by gtb:

but I doubt anyone is going to do so unless you throw a lot of money at them.

And the original source..
gtb
Premium Member
join:2016-05-16
united state

1 edit
said by kevinds:
said by gtb:

but I doubt anyone is going to do so unless you throw a lot of money at them.

And the original source..
You don't need the original source, for you could write it from scratch (but more money likely would be involved, as writing an entire app from scratch is going to require additional efforts.
MrVile
join:2009-01-17
to nanga
said by nanga:

hopefully comes back in $35

Newegg has the Obi200 for $39.99 after a $10 off code that's on the product page, ends 7/23. I ordered one earlier today after I saw that I wasn't the only one missing Google Chat.
naf
join:2017-12-12
or for that same $39.99, rent a VPS for 4 years and relay GV to your obi1xx and 10 of your friend's obi1xx's...

kevinds
Premium Member
join:2003-05-01
Calgary, AB
to gtb
said by gtb:

You don't need the original source, for you could write it from scratch (but more money likely would be involved, as writing an entire app from scratch is going to require additional efforts.

Not just an app but possibly an entire OS?
kevinds
to naf
said by naf:

or for that same $39.99, rent a VPS for 4 years and relay GV to your obi1xx and 10 of your friend's obi1xx's...

Or for the same $39.99 actually buy VoIP service for many years
naf
join:2017-12-12

6 recommendations

said by kevinds:
said by naf:

or for that same $39.99, rent a VPS for 4 years and relay GV to your obi1xx and 10 of your friend's obi1xx's...

Or for the same $39.99 actually buy VoIP service for many years
either way, just don't give those obi mothafuckas more of your money as a reward for punking you
mj56gt
join:2018-07-20
So, Obi 1x0 is fully dead in terms of using it for Google Voice phone calls?

bitstopjoe
join:2009-08-02
Pen Argyl, PA
Yes, it's dead Jim...
mj56gt
join:2018-07-20
said by bitstopjoe:

Yes, it's dead Jim...

Thanks for the confirmation!

My Obi 110 stopped working two days ago with the message "We could not complete your call. Please try again" whenever I make an outgoing call. And I can't get any incoming calls either.
mitchflorida
join:2004-09-01
Deerfield Beach, FL
Callcentric free DID number let's you receive GV incoming calls. Obi100 is still quite functional. Ditto outgoing calls that are started on GV website using ringback.
nlurker
join:2018-05-07
said by mitchflorida:

Callcentric free DID number let's you receive GV incoming calls. Obi100 is still quite functional. Ditto outgoing calls that are started on GV website using ringback.

I switched my Obi110 to a Callcentric DID, but I am experiencing much worse latency. With GV XMPP it was barely noticeable, maybe 0.1 second. But with Callcentric it is more like a full second. Makes conversation awkward and difficult. Is there anything I can configure to improve this?

brg
Premium Member
join:2001-01-03
Chicago, IL

1 recommendation

said by nlurker:

I switched my Obi110 to a Callcentric DID, but I am experiencing much worse latency. With GV XMPP it was barely noticeable, maybe 0.1 second. But with Callcentric it is more like a full second. Makes conversation awkward and difficult. Is there anything I can configure to improve this?

Without knowing your current configuration details, hard to say.

I have had GV pointed to CC for several years and have no such latency problems.
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net
to nlurker
said by nlurker:

I switched my Obi110 to a Callcentric DID, but I am experiencing much worse latency. With GV XMPP it was barely noticeable, maybe 0.1 second.

May I ask where geographically you live? (State/province is close enough.)
nlurker
join:2018-05-07

1 recommendation

said by Mango:

May I ask where geographically you live? (State/province is close enough.)

Texas. My ping to Callcentric is about 50ms. I hear an echo test delay closer to 1000ms. I tried a different echo test and it wasn't quite as bad, but still about 500ms. I guess the echo test could be far away from Callcentric as well.
talkbot
join:2017-12-11

1 recommendation

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

Hey naf, et al. I see our 100 series are down and out again. Checked out gvsip.info and have a question. Since 100 series supports tls signaling, rtcp-mux, oauth, and has some user definined sip headers that can be hijacked, what are we missing to get gvsip working on 100 series (in theory)? Assuming we have naf's legendary binary patching skills at our disposal.
naf
join:2017-12-12

2 recommendations

said by talkbot:

Since 100 series supports tls signaling, rtcp-mux, oauth, and has some user definined sip headers that can be hijacked, what are we missing to get gvsip working on 100 series (in theory)?

well well well, look whos back. the bot that started it all

in theory? id guess the auth and a couple static headers are probably not too bad, but you'd have to find the code that reads the register response to grab the right identity and routing strings, find somewhere in the per-ITSP state memory to take over to store them (they're long), and then find wherever it send the invite to add them back in.

[also you'd have to overcome the mental beatdown of going back to a os-less monolithic mips exe after looking at the obi2xx dynamically linked linux ELF arm beauty with idapro. to be honest when the protocol changed i never even looked back at the shitty disassembly files with ghetto strings sed'd in and memcpy/sprintfs manually identified]
talkbot
join:2017-12-11
Yeah I hear you. But at least there are some nice string values to trace...

Ok so what about a minimal raw rewrite proxy and tunnel?
naf
join:2017-12-12
said by talkbot:

Ok so what about a minimal raw rewrite proxy and tunnel?

I don't understand what you're asking.

I keep hoping someone from the community will stand up an asterisk gateway that obi1xx's could just point at, but so far no volunteers...
talkbot
join:2017-12-11
What I mean is something minimal that will only parse and rewrite the sip header extensions not supported by obi100 and do the oauth token stuff and proxy it in a tls tunnel. Something that aims to have a tiny footprint compared to an asterisk instance.
naf
join:2017-12-12
to talkbot

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

said by talkbot:

What I mean is something minimal that will only parse and rewrite the sip header extensions not supported by obi100 and do the oauth token stuff and proxy it in a tls tunnel. Something that aims to have a tiny footprint compared to an asterisk instance.

hm. never thought in that direction. not sure if that would work without something proxying the media chanel as well.
deeiche
join:2016-04-06
I effectively made the same suggestion regarding Asterisk extension here, »Re: Asterisk Google Voice SIP testing and technical discussion

SkOrPn7
join:2006-02-15
Tijeras, NM

1 edit
to talkbot
EDIT: Never mind me. I answered my own question, lol...
zapattack
join:2012-07-02
CANADA
Did anyone see this on Amazon?
"Obi 100 and 110 fix for Google Voice"
"This video will show you how to get your Obi 100 or 110 model device working with Google Voice again after the change to OAUTH 2.0 encryption, which requires a firmware upgrade on these models."

One review, you have to be a Prime member.

»www.amazon.com/Obi-100-1 ··· ords=obi
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net

1 recommendation

It's from 2016, so predates GVSIP.
Anondcc9c
@spcsdns.net
to naf
I just found your firmware today or rather was pointed to it by a user on slickdeals. Am I to understand the obi100 once again will not work with google voice even with the naf firmware? I've dialed my own google voice # from the handset but am getting the same "rejected by server" message as dialing a different phone number.

kevinds
Premium Member
join:2003-05-01
Calgary, AB
said by Anondcc9c :

I just found your firmware today or rather was pointed to it by a user on slickdeals. Am I to understand the obi100 once again will not work with google voice even with the naf firmware? I've dialed my own google voice # from the handset but am getting the same "rejected by server" message as dialing a different phone number.

Correct.

Google made some more changes
tazmo8448
join:2011-11-29
Columbia, SC
Is there any hope that Obi100 can be made to work again?
OR
is it a lost cause?
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net
The OBi100 and 110 work perfectly well with non-Google service providers. I've been using them since 2011 and they are still in use today.

If you wanted to know if it can be made to work with Google Voice, theoretically yes, but such a modification is not by any means simple. To date I'm not aware of anyone working on such a project, but you are by all means welcome to try.

kevinds
Premium Member
join:2003-05-01
Calgary, AB
to tazmo8448
said by tazmo8448:

Is there any hope that Obi100 can be made to work again?
OR
is it a lost cause?

Any hope that it can be made to work again, with Google? With GoogleVoice? Sure, but realistically, I don't think anybody is really going to put much more work into them then has already been done.

You are certainly welcome to try though.

The difference between hacking the Vonage ATAs and the Obihai's, is that the Vonage ATAs were just locked to Vonage, otherwise they were perfectly functional.

The Obihai OBi100 series is that they still work perfectly well, except with Google Voice.. If you want to use Google Voice, just get a new adapter, sell/give away your OBi100 series to someone who uses another VoIP service.

hapollo
join:2007-05-13
WesterOS
to tazmo8448
The Obi100/110 will still work with GV but not directly.

I set up FreePBX/Asterisk using RonR's build with Naf's GVSIP patch and it works fine.

Still running Pre-OAuth2 firmware 1.3.0 (Build: 2824) on the Obi110 too.

So, yes, it can work but depends on how much work you are willing to put in and how often you use GV for free calls to make it worth the effort.

jsolo1
Premium Member
join:2001-07-01
PRIL
^^On what are you running the freepbx/asterisk? For those that already have a vm server of some sort, adding another vm is a no brainer. The typical home user probably does not so it's an added expense/process. Even a raspberry pi is around $30-40 to be made functional. Cheaper to just buy an obi200.

The obi's also go on sale periodically too.

hapollo
join:2007-05-13
WesterOS
I bought a whole bunch of Pis (zero, Pi2, Pi3) for less then $10ea from Microcenter using various coupons over the years.

Granted, they usually are $30. The way I see it; even if you spend $30 on Pi3+ today, you don't lock yourself into Obi's money making machine which can easily sunset the newer models for whatever reason they want.

Sure, one can argue the OBis even when not functional with GV can still be usable with other VOIP providers but taking the time to build a RasPBX keeps the options open for GV so long as the brain pool here can continue the reverse engineering when Obi pulls another revenue grab.

Again, whether it's worth the effort depends on your technical acumen and your view of Obi's random sunset policy.

For me, given the choice of a $30 Pi3+ or a $35 Obi200 when on sale, I'll go for the Pi3+ without hesitation.

For those on a budget, even a Pizero for $5 can handle a few GVSip extensions with no issues.

jsolo1
Premium Member
join:2001-07-01
PRIL
Or one can buy one of these - »www.ebay.com/itm/113256665716 . Amazing!

kevinds
Premium Member
join:2003-05-01
Calgary, AB
to hapollo
said by hapollo:

I bought a whole bunch of Pis (zero, Pi2, Pi3) for less then $10ea from Microcenter using various coupons over the years.

Nice.. I have never seen them anywhere close to that price..

hapollo
join:2007-05-13
WesterOS
to jsolo1
said by jsolo1:

Or one can buy one of these - »www.ebay.com/itm/113256665716 . Amazing!

At quick glance, it seems to me, that is nothing but RonR's/AllThumbs builds with all the mods on a SD card.

Sure, if one lacks the technical acumen to follow the RonR's/Ward's/Naf's instructions, that may be the route to go.

Just realize, that is just the SD image, and one still needs to buy the Pi to run it on. Totaling $70+ if you don't already have a Pi.

It's up to each individual to determine what their time is worth to build it themselves or buy an off the shelf solution.

But buying something off Ebay doesn't guarantee you'll get the technical support you need should something go wrong or when GV changes the protocol again.
hapollo
to kevinds
Well, there was this last year. But like you said, the brokerage fees didn't make it worthwhile it for you

»Spend $20- Free Pi 3 Promo for those wanting a FreePBX, PBIAF etc

jsolo1
Premium Member
join:2001-07-01
PRIL
to hapollo
Totally. I'm more bothered by someone capitalizing on someone else's work (but, what else is new). I looked at that seller's selling history, doesn't appear anyone's bought one, at least not recently. Given all the factors involved (as you itemized above), it's unlikely someone will actually buy that.

For the non tech person, the obi is still the best solution. Even that's not entirely turnkey. For the tech person, they should be prepared to spend lots of hours figuring things out, even after the server/freepbx/asterisk is installed.

WhyADuck
Premium Member
join:2003-03-05
to jsolo1
said by jsolo1:

Or one can buy one of these - »www.ebay.com/itm/113256665716 . Amazing!

Amazing ripoff if you ask me, since all you are really getting is a 16GB "or greater" Micro SDHC class 10 flash drive (what, the seller doesn't even know the size of the SD card for certain?) that most likely has had (if you are lucky) RonR's FreePBX for the Raspberry Pi script run on it, or if you are not lucky then maybe someone else's script that installs a lot of useless extras. Or if you are really unlucky, there could be something on that card that monitors traffic on your local network and sends choice bits to somewhere else, or maybe tries to do coin mining for an unknown third party, or does who knows what other nefarious tasks. The point is that you just don't know, because someone else installed the software, and you have no idea what you are getting. It may be perfectly fine software, it may be crap software, or it may be downright dangerous software.

In other words, purchasing one of these makes no sense from either a financial or security standpoint, but that doesn't mean there won't be people who will throw all caution to the wind (along with their money) for the sake of convenience.

hapollo
join:2007-05-13
WesterOS
to jsolo1
said by jsolo1:

For the tech person, they should be prepared to spend lots of hours figuring things out, even after the server/freepbx/asterisk is installed.

Like I have repeatedly said, I think each user needs to weigh the cost of their own time, vs call volume vs doing it for "fun"

I was simply answering the question posed, "can the Obi100/110 still work with GV."

I can happily report "yes it does"- with some effort.

To each their own, I never see it as a one size fits all solution.
GreenArrow
join:2018-09-28
to talkbot
I was wondering...... if someone has an old MagicJack dongle, that MJ number should still be able to receive incoming calls (even if their subscription is not active). Can MJ be added on Obitalk as a generic SIP provider to enable incoming calls on a obi100?

I searched for the MJ SIP info to attempt this (just out of curiosity), but could not find anyone attempting it (if it is even possible).

If it works, that would put some use in to the obi100/Obi110, while forwarding GV number to the MJ number (at least for incoming calls).

kevinds
Premium Member
join:2003-05-01
Calgary, AB
said by GreenArrow:

I was wondering...... if someone has an old MagicJack dongle, that MJ number should still be able to receive incoming calls (even if their subscription is not active). Can MJ be added on Obitalk as a generic SIP provider to enable incoming calls on a obi100?

I searched for the MJ SIP info to attempt this (just out of curiosity), but could not find anyone attempting it (if it is even possible).

If it works, that would put some use in to the obi100/Obi110, while forwarding GV number to the MJ number (at least for incoming calls).

If you had the credentials sure, but as far as I knew MJ keeps those hard to get and they don't like people doing that..
azrobert
join:2015-02-07
Fountain Hills, AZ
to talkbot
See:
»GV on any SIP device $15/free Pbxes.com
naf
join:2017-12-12

7 recommendations

to talkbot
Here's a bsdiff to update stock 2886 fw (»fw.obihai.com/OBi110-1-3 ··· -2886.fw) to be able to dump the box's private key and obi-signed certs.

Changes from stock:
1) add globalsign cert (root for GIAG3)
2) remove firmware downgrade check
3) oauth token request override (not that xmpp works anymore)
4) syslog key/cert dump during backup

md5sum OBi110-1-3-0-2886-naf8.fw = e0496c80d5f308ace35871412ba62133

NOTES:
The certs are output to the syslog when performing a 'Configuration Backup' in the webgui (not in the backup file itself, which can be ignored)

syslog setup info here: »www.obitalk.com/forum/in ··· ic=707.0
except they broke the link to the windows exe, which used to be this: »web.archive.org/web/2013 ··· logd.zip

certs are dumped in (a hex string of the bytes of) DER format.
so first write the actual binary DER and then convert to PEM if necessary. something like:
$ echo "{LONG KEY HEX STRING FROM SYSLOG}" | xxd -p -r > client.der.key
$ echo "{LONGER CERT HEX STRING FROM SYSLOG}" | xxd -p -r > client.der.crt
$ openssl rsa -inform der -in client.der.key -out client.key
$ openssl x509 -inform der -in client.der.crt -out client.crt
elphone
join:2018-07-10
Mountain View, CA

1 edit
I cant seem to find the KEY and CERT in the syslog file I generated. Is there any particular keywords I should be looking for? I did remember to run the config backup (and even save the file) before looking in the syslog output of my obi100.
RonR
join:2003-10-10
Ash Flat, AR
said by elphone:

I cant seem to find the KEY and CERT in the syslog file I generated.

said by naf:

certs are dumped in (a hex string of the bytes of) DER format.
so first write the actual binary DER and then convert to PEM if necessary. something like:
$ echo "{LONG KEY HEX STRING FROM SYSLOG}" | xxd -p -r > client.der.key
$ echo "{LONGER CERT HEX STRING FROM SYSLOG}" | xxd -p -r > client.der.crt
$ openssl rsa -inform der -in client.der.key -out client.key
$ openssl x509 -inform der -in client.der.crt -out client.crt

elphone
join:2018-07-10
Mountain View, CA
Clarification: There is a number of hex strings scattered about in the syslog output file. Since I am not familiar with the format and keywords used in the obi100 syslog output, I'm having trouble determining which hex strings might be the KEY and CERT, or even tell whether the needed strings are present in the syslog at all. I hope I am making sense now.

Boar Vessel
join:2014-06-11
Look for "Client private key (DER format):" and "Client obi-signed cert (DER format):"
RonR
join:2003-10-10
Ash Flat, AR
to elphone
said by elphone:

Clarification: There is a number of hex strings scattered about in the syslog output file.

I only get two hex strings:

Client private key (DER format):
...........

and

Client obi-signed cert (DER format):
...........

The second is almost twice the length of the first.
elphone
join:2018-07-10
Mountain View, CA

1 edit
to Boar Vessel
My syslog output does not contain those keywords, or even just the word "Client". What might be the problem? (As I mentioned, mine is an obi100 unit. Is that a problem, does it have to be an obi110?)
RonR
join:2003-10-10
Ash Flat, AR
to elphone

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

said by elphone:

My syslog output does not contain those keywords, or even just he word "Client". What might be the problem? (As I mentioned, mine is an obi100 unit. Is that a problem, does it have to be an obi110?)

Did you create and upgrade to?:

OBi110-1-3-0-2886-naf8.fw

It works fine on an OBi100.
twinclouds
join:2010-06-12
San Diego, CA
to elphone
Have you updated the firmware to the latest (naf8.fw)?
I got all what needed after update.
elphone
join:2018-07-10
Mountain View, CA

4 edits
to RonR
I'm running exactly what was prescribed. I have checked the md5sum: md5sum OBi110-1-3-0-2886-naf8.fw = e0496c80d5f308ace35871412ba62133, and I have followed the instructions exactly.

Good to get confirmation that it *should* work on obi100, but in my case it is not working (yet). Any other ideas????
twinclouds
join:2010-06-12
San Diego, CA
to RonR
It also works for me on an obi110.
twinclouds
to elphone
Can you see the long hex strings dumped to the windows terminal?
elphone
join:2018-07-10
Mountain View, CA

4 edits
I cannot see any "long hex strings", and I dump all the syslogd.exe output to a file as well. The longest hex string I can see is 128bit/32char and has the keyword CallId: at the start of the line. There is also some 32bit/8char thing also with the same keyword CallId:. That's all I get. For future reference, how many bits/chars is the DER-format key or crt supposed to be?
twinclouds
join:2010-06-12
San Diego, CA
Didn't count but at least a few hundreds.
elphone
join:2018-07-10
Mountain View, CA

1 edit
If I disable the SP1/SP2 SIP logging then the syslog output gets real quiet.

%  tail -f /cygdrive/c/syslogd.log 
[Nov 18 16:14:47][10.10.10.17]<0> Final Cleanup before reboot....
 
[Nov 18 16:14:48][10.10.10.17]<144> Goodbye! Reboot Now. (reason: 4)
 
[Nov 18 16:14:54][10.10.10.17]<0> IP Address= 10.10.10.17 
[Nov 18 16:14:54][10.10.10.17]<0> Gateway   = 10.10.10.99 
[Nov 18 16:14:54][10.10.10.17]<0> Netmask   = 255.255.255.0 
[Nov 18 16:14:54][10.10.10.17]<0> SLIC_init ...
[Nov 18 16:14:54][10.10.10.17]<0> Reset SLIC...
[Nov 18 16:14:56][10.10.10.17]<0> SLIC & DAA is initialized
 

After the (re)boot, I do a backup config operation and this is when I *expect* to see the certs/keys, but nothing appears.

Note: Those earlier 128b or 32b hex strings that I saw were likely all related to SIP traffic involving SP1 (external) and SP2 (my asterisk box with GVSIP). Those strings probably have nothing to do with the certs/keys I'm trying to get to.
RonR
join:2003-10-10
Ash Flat, AR
Do you have the OBi set for Level 7 in the Syslog settings?

Boar Vessel
join:2014-06-11
There should be a <6> Start Main Service Now after the last line.
said by RonR:

Do you have the OBi set for Level 7 in the Syslog settings?

The default is 7, so my guess it was manually (accidentally?) changed.
elphone
join:2018-07-10
Mountain View, CA

1 edit
to RonR
Yes, Obi SIP syslog debug was set at level 7 before, but now I just turned them off again (prev post), because they just generated irrelevant junk in the log. It is supposed to be the "backup config" action that triggers the printing of certs/keys. In any case I was not getting any certs/keys at level 7 setting. I can turn it back on again, but it makes no difference in terms of getting certs/keys printed. No certs/keys appear, just SIP logging noise.

CORRECTION: See below, I had confused Menu.Device-Admin.Syslog.Level=7 with "X_SipDebugOption" = "Log All Messages"
twinclouds
join:2010-06-12
San Diego, CA
to elphone
I tried again. No problem at all.
On the SoftwareVersion page it shows "1.3.0 (Build: 2886-naf8)", right?
twinclouds
to elphone
I have never seen any junk output. Maybe the "junk" is actually the corrupted hex strings? You might want to use a different terminal emulator to try?
elphone
join:2018-07-10
Mountain View, CA

4 edits
to RonR
I GOT THE CERT/KEY. Will explain in a minute.

UPDATE: Okay, here is what the problem was: The original instructions seemed not to mention that
Menu.Device-Admin.Syslog.Level=7 is required to be able to get the certs/keys in the syslog output, possibly because 7 is/was a default (although mine was set to 0, and I doubt I ever changed it before).

So, when RonR asked about level=7 I was confused because the original-recipe-link-to-obihai-blog-recipe-for-syslogd was talking about setting up SP1/SP2 SIP logging "X_SipDebugOption" parameter to "Log All Messages", which I confused with the other level=7 setting. As it turns out, the whole SIP SP1/SP2 logging thing does not even need to be enabled at all, and in fact just creates a ton of confusing output that has nothing to do with dumping the certs/keys.

Thanks to all that helped out, and of of course especially to naf that made it all possible. I think with a small clarification to the recipe hopefully there will be no more questions such as mine .
Anonf08c1
@216.246.239.x
to RonR
I got "Connected" Status on an Obi110.
However, outgoing/incoming calls not working. I must have missed something.
tbishop1
join:2003-02-26
San Diego, CA
to talkbot
... Hi I was directed to this forum by obifirmware.com was trying to download the latest firmware for an OBI1022 its running the latest stock firmware from OB.. I saw the warning about the "wont flash from stock GVSIP due to x509...." it just fails with a checksum error when I do it from the 1022's web interface:

Firmware Update Failed
Firmware package checksum error

Can't seem to find how you get around this? Just trying to update to the latest custom..

Thanks, Tom B.
luckyguy2000
join:2018-08-17
Summit, NJ
to RonR
said by RonR:

It works fine on an OBi100.

Hi RonR,
When I try to upgrade OBI 100 firmware, I got below message. Thanks!
Previous version identical to the update. Firmware not modified. 
 
RonR
join:2003-10-10
Ash Flat, AR
said by luckyguy2000:
said by RonR:

It works fine on an OBi100.

Hi RonR,
When I try to upgrade OBI 100 firmware, I got below message. Thanks!
Previous version identical to the update. Firmware not modified. 
 
Then I assume you're trying to upgrade the OBi100 firmware to the same version that it's currently running.
luckyguy2000
join:2018-08-17
Summit, NJ
said by RonR:

Then I assume you're trying to upgrade the OBi100 firmware to the same version that it's currently running.

stupid question, how can I patch OBi110-1-3-0-2886.fw? Can it be patch under Raspberry PI? thanks
MPuRdsIBlutA
join:2018-11-01
said by luckyguy2000:
said by RonR:

Then I assume you're trying to upgrade the OBi100 firmware to the same version that it's currently running.

stupid question, how can I patch OBi110-1-3-0-2886.fw? Can it be patch under Raspberry PI? thanks
»www.daemonology.net/bsdiff/
RonR
join:2003-10-10
Ash Flat, AR
»Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

You can install bsdiff (you need bspatch, which is part of it) with:

apt-get install bsdiff
luckyguy2000
join:2018-08-17
Summit, NJ

1 edit
said by RonR:

»Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

You can install bsdiff (you need bspatch, which is part of it) with:

apt-get install bsdiff

Thank you so much RonR and yn435ee! I was able to patch and upgrade to FW to 1.3.0 (Build: 2886-naf8) now. I never thought Obi100 can do anything . Thanks NAF for his Amazing work!
atng
join:2018-11-21
to naf
Thank you naf for your amazing work. I followed all the steps and got OBi110-1-3-0-2886-naf8.fw installed on my Obi110 as well as the cert and key files. Since I am new here, please kindly confirm my understanding (or misundertanding):
- Even I can get the "Connected" status for my gv account with naf8 fw; I will not be able to get incoming/outgoing calls working with Obi110 (not supported..yet)
- The cert/key files obtained will not be useful in my case with Obi110.
WallyG
join:2004-05-12
Brooklyn, NY
to naf
I have the cert and key.
What do I do with them?
WallyG
to atng
Sorry for the stupid nubi question. After did all as described to get the key and cert. What do I do with them?
WallyG
to naf
Thank you so much for explanation. I purchased this box a long time ago and never used it for Google voice. Now I am trying to get it to work using the directions described here. I now have the final Cert and Key files. What do I do with them? (Sorry if this is a stupid Noob question)
atng
join:2018-11-21
to WallyG
May be naf, RonR or other gurus in this forum can shed some light for us on how to use these key and cert. I am sorry if this question has been addressed previously.
Anon7a3ca
@24.205.87.x
Put an obsolete netbook to good use here -> »How to Install naf Asterisk on Ubuntu for Obi100 and Google Voice

WhyADuck
Premium Member
join:2003-03-05
said by Anon7a3ca :

Put an obsolete netbook to good use here -> »How to Install naf Asterisk on Ubuntu for Obi100 and Google Voice

I think there is some kind of underlying assumption here that it's okay with Google Voice if you extract the certs from an Obi100 or 110 and then use them with naf's Asterisk patches. That is certainly not an interpretation I would make after reading the Google Voice rep's posts in the other (now locked) thread. It's your Google Voice account to risk, and maybe you'll get away with it, but just be aware that you are engaging in risky behavior that potentially might cost you your Google Voice account and number. I'm not saying you should or shouldn't do it, because I don't work for Google and honestly I couldn't care less if you lose your account, or if you don't lose it and this continues to work for you (and really I hope for your sake it's the latter). But you (and anyone who is contemplating doing what you have done) should at least consider the potential risk of losing your GV account. If that would be a source of major headache or heartache for you, then maybe this isn't the best idea.
Brown
join:2018-01-21

2 recommendations

You have said you're all against buying any new PolyOB models so what are you going to do (or have done) if you don't mind me asking?

After all, solutions are (should be) more respected than doomsday scenarios

WhyADuck
Premium Member
join:2003-03-05
to Brown

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

said by Brown:

You have said you're all against buying any new PolyOB models so what are you going to do (or have done) if you don't mind me asking?

After all, solutions are (should be) more respected than doomsday scenarios

Well I can forward my Google Voice account to a DID, so incoming always works, and when I want to make a call I first try dialing it the normal way to see if PyGoogleVoice will complete the call but since lately that rarely works during daytime hours, I can instead log into my Google Voice account and initiate the call from there. Or I can use my cell phone.

I have nothing against people using other solutions, including ones that Google Voice may strongly disapprove of. Some people are risk-takers, and more power to them. I am risk-adverse, and don't want to take the chance of losing my GV number. Sometimes risk takers are big winners and sometimes they run right off the edge of a cliff. I also happen to think buying a new Polycom/Obihai device is risky because you never know when they will try to squeeze more money out of their customers, for example by declaring current models obsolete and requiring that people buy new ones to maintain Google Voice capability, so in a way people like me find ourselves between a the proverbial rock and hard place because there is no non-risky solution that appeals to us. On the other hand, like many people I know, I find I am going days between making any outbound calls, other than to family members who have extensions on our Raspberry Pi-based PBX (and therefore their calls don't go through Google Voice).

Even before Google Voice discontinued XMPP support I had noticed that people using the PBX were making and receiving fewer and fewer calls, to the point that now on many days the only calls I see are coming from spammers (many of whom were blacklisted long ago but they just keep calling). Setting up a system running GVSIP was in many ways VoIP's last hurrah for those just fascinated by the technology, and that party ended when the Google guy showed up to pop that balloon. But still, even when naf's GVSIP patches were working, entire days went by with no legitimate calls being handled by the PBX. Sure, commercial VoIP service will be around for a while yet for business users, but I think most ordinary people are pretty much using their cell phones exclusively, and often texting rather than calling.

I have no argument with anyone who continues to use GVSIP with Asterisk in some manner; if you do I hope Google never notices, and if they do notice and actually shut off your account I hope you at least managed to really piss them off. There is a part of me that had hoped that maybe we might see some announcement of an agreement between Digium and Google Voice so that Asterisk could officially support Google Voice connections, but everything I have read on this forum indicates that no one from either of those companies has the slightest bit of interest in making that happen, so in that regard I have given up hope. I think that like many older technologies, landline telephony and IP-based services that attempt to emulate it have had their day in the sun, but now the sun is setting on those technologies. My guess is that once 5G becomes an established thing, even many businesses that still depend on landlines, or functional equivalents of landlines, will begin using cell phones exclusively.

I don't think Google Voice or VoIP will suffer a specific doomsday, they are just going to fade away through attrition. Unfortunately, I think we are a lot farther down the sunset trail than many people would like to admit. Therefore, solutions may be kind of irrelevant at this point, if everyone is moving toward cell phone use exclusively.
mnetwork
join:2018-12-05
New Milford, NJ

1 recommendation

to naf
said by naf:

Here's a bsdiff to update stock 2886 fw (»fw.obihai.com/OBi110-1-3 ··· -2886.fw) to be able to dump the box's private key and obi-signed certs.

Changes from stock:
1) add globalsign cert (root for GIAG3)
2) remove firmware downgrade check
3) oauth token request override (not that xmpp works anymore)
4) syslog key/cert dump during backup

md5sum OBi110-1-3-0-2886-naf8.fw = e0496c80d5f308ace35871412ba62133

NOTES:
The certs are output to the syslog when performing a 'Configuration Backup' in the webgui (not in the backup file itself, which can be ignored)

syslog setup info here: »www.obitalk.com/forum/in ··· ic=707.0
except they broke the link to the windows exe, which used to be this: »web.archive.org/web/2013 ··· logd.zip

certs are dumped in (a hex string of the bytes of) DER format.
so first write the actual binary DER and then convert to PEM if necessary. something like:
$ echo "{LONG KEY HEX STRING FROM SYSLOG}" | xxd -p -r > client.der.key
$ echo "{LONGER CERT HEX STRING FROM SYSLOG}" | xxd -p -r > client.der.crt
$ openssl rsa -inform der -in client.der.key -out client.key
$ openssl x509 -inform der -in client.der.crt -out client.crt

Thank you for this! Spent a few hours tonight putting this all together and got everything working again (coming from GV XMPP). I was impressed with the firmware patch!
fei20107
join:2005-10-14
Chicago, IL
newbee here... Is there a step by step guide to set this up? thanks.
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net
We can likely provide some assistance. What are you trying to set this up to do?
fei20107
join:2005-10-14
Chicago, IL
Sorry for not being clear.
Here is my setup long time ago:
1) Obi100 connects with GV using obitalk website.
2) GV forwards to Callcentric. obitalk website registered with callcentric.
3) additional sip setup with nonoh.net for international calling. phone call starts with 00 will be routed here.

My understanding is that this wonderful mod FW will make obi100 works with GV again without using obitalk website. Is there any noob guide on how to use this mod?

thanks!
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net
Unfortunately no, not since Google disabled xmpp. Your current options are to buy an OBi2 (currently on sale at NewEgg) or build an Asterisk server.

»Re: [Equipment] Obihai Obi200 on sale at Newegg for $34.99 and free shipping
fei20107
join:2005-10-14
Chicago, IL
Got it, thank you!
donatom
join:2018-11-12
Ventura, CA

1 edit
to naf
I downloaded naf's fw mod but each time I download it I get a different result from md5sum (sudo md5sum OBi110-1-3-0-2886.fw
[sudo] password for donatom:
9f5e945f44c6861cca01d8b1c6f05505 OBi110-1-3-0-2886.fw).

I have downloaded and have run md5sum on the fw update several times, but I always end up with the same (erroneous) result.

Obviously I don't want to update the OBI firmware with a corrupted/wrong fw file

EDIT: after getting info on the bsdiff program (via dnf in fedora 29), I now understand that it is for tweeking/changing patches. Am I supposed to utilize naf's OBi110-1-3-0-2886-naf8.fw.bsdiff file somehow on his fw file or am I supposed to upgrade the fw in OBI's Device Update w/o using his bsdiff program (and how is this program different from Fedora's/Debian's own stock bsdiff program?).

Also I am unsure of what I should do if anything with naf's bsdiff file.

Any help or advice would be appreciated.
Brown
join:2018-01-21
You'll patch the stock firmware with the bsdiff patch:
cd /usr/src
sudo apt install bsdiff
sudo bspatch OBi110-1-3-0-2886.fw OBi110-1-3-0-2886-naf8.fw OBi110-1-3-0-2886-naf8.fw.bsdiff
OBi1FW
join:2017-12-27
Vienna, VA

1 recommendation

to donatom
Here the md5sum for naf7 is:

# wget -q http://fw.obifirmware.com/OBi1-1-3-0-2886-naf7.fw
# md5sum OBi1-1-3-0-2886-naf7.fw
be19225edfa4830104ae29858b100180  OBi1-1-3-0-2886-naf7.fw
 

9f5e945f44c6861cca01d8b1c6f05505 is the md5sum for stock 2886.

If you don't like to use bsdiff, you can download the modified firmware from obifirmware.com.
donatom
join:2018-11-12
Ventura, CA
to Brown
Brown, thank you very much for your explanation. Without this and OBi1FW's clarification I would be totally lost. I successfully patched the OBI fw with naf's modification and it looks like the md5sum gave the results that naf indicated.
donatom
to OBi1FW
OBi1FW, thanks a lot for your advice and clarification. After reading your post, everything made sense and I was able to patch the stock firmware correctly.
donatom

1 edit
to talkbot
I have set up rsyslogd on fedora 29. It fails to log the obi100 system backup. In the journalctl log, it states that rsyslog starts and then stops. I am now going to try logging the backup from Windows 10 (which I almost never use). It seems that the syslog program made available by naf, is a stand-alone program (there is no installation as far as I can tell).

In a few days (when I have access again to Win 10) I plan to try to get the info via syslog.exe. Hopefully that works.

Has anyone used the syslog.exe on Windows to log the info from obi backup? If so, is it indeed a standalone program?
naf
join:2017-12-12
On linux, just use netcat:
$ sudo nc -l -u -p 514
 
or any similar util to dump the udp packets...
donatom
join:2018-11-12
Ventura, CA
Thanks a lot, naf. I will do that in the next few days. That is a great solution to my problem.
donatom
to talkbot
naf, I must be missing something basic. I have created your modified fw which has the correct check sum, I install it on obi100 (System Management > Device Update > browse to naf-8 fw > update). I then have entered the IP of obi100 (System Management > Device Admin > Syslog; port is 514 and level is 7 -- both are default). I click on "Submit" and then reboot OBI. I then run the Backup Configuration (System Management > Backup Configuration > Click on "Backup"). Then on bottom of OBI web GUI it says "waiting for 192.168. . . . (OBI IP)". After a minute or two the web GUI states that "The connection was reset" and the IP must be refreshed to get back to the GUI.

You refer to "Configuration Backup" which I assume is "Backup Configuration".

The net result is that no information is dumped -- either in the terminal with the netcat command or with journalctl -r.

If you see an error, please let me know.
Brown
join:2018-01-21
said by donatom:

... I then have entered the IP of obi100 (System Management > Device Admin > Syslog; port is 514 and level is 7 -- both are default). I click on "Submit" and then reboot OBI.

In the Obi you need to enter the IP of the syslog server (your PC).
donatom
join:2018-11-12
Ventura, CA
Thanks, brown. That works (using naf's netcat command). I racked my brains to no avail. Thanks again for your help.
donatom
to Brown
I will convert the hex numbers to the key and cert files as explained by naf and include them in my pjsip.conf file in a day or two to see if that revives my gvsip asterisk server (I currently don't have access to the server). I have been working on another OBI100 that is not connected to asterisk.
Vpcat
join:2019-03-09
How is your working on another OBI100 that is not connected to asterisk ?
Can you make google voice call out now ?
Vpcat
to donatom
said by donatom:

I will convert the hex numbers to the key and cert files as explained by naf and include them in my pjsip.conf file in a day or two to see if that revives my gvsip asterisk server (I currently don't have access to the server). I have been working on another OBI100 that is not connected to asterisk.

How is your working on another OBI100 that is not connected to asterisk ?
Can you make google voice call out now ?
donatom
join:2018-11-12
Ventura, CA
Cpcat, I successfully created the client.crt and client.key. However, my pbx still cannot connect to gvsip.

Recently I have found that the power-supply for my Raspberry-Pi 3B is not adequate; I am now waiting for a new one to arrive; the power-supply problem could explain my problem.

I have been using various Android power supplies -- not a very smart thing to do, I guess.

hapollo
join:2007-05-13
WesterOS

1 recommendation

said by donatom:

I have been using various Android power supplies -- not a very smart thing to do, I guess.

Your 2.5A that you just ordered should be more than fine for headless. If you are running headless, there are things you can turn off to ensure stability of the PI and under-voltage issues that I've used from this article:

»www.jeffgeerling.com/blo ··· e-energy

I have also found the latest PSU from new Androids like Samsung, and Motorola Quick Charge to provide adequate power when many of the features are turned off as posted in the above article.

Of cos, 3B is also the fastest one clocking in at 1.4Ghz x 4. Hence, in need of at least 2A PSU.

I run headless with many features turned off on various Pi2s and even with and old Samsung 1.8A is fine. But when I overclock the Pi2, I do see occasional Undervoltage messages in dmesg. But Asterisk really doesn't need 3B for calls, it justs to make the GUI interface faster. There are many who still run Asterisk off a Pi zero with zero issues even with multiple calls going.
donatom
join:2018-11-12
Ventura, CA
hapollo, thanks for the info and the link! The new power-supply is supposed to come tomorrow -- although I won't be home until next Thursday to try it.
RonR
join:2003-10-10
Ash Flat, AR
to hapollo
said by hapollo:

Of cos, 3B is also the fastest one clocking in at 1.4Ghz x 4. Hence, in need of at least 2A PSU.

Actually, it's the 3B+ that runs at 1.4 Ghz. The 3B runs at 1.2 Ghz. The 3B+ is also a lot more power hungry than the 3B. The 3B+ requires a very stable 2.5A supply and better cooling for total reliability.

hapollo
join:2007-05-13
WesterOS

2 edits
to donatom
said by donatom:

hapollo, thanks for the info and the link! The new power-supply is supposed to come tomorrow -- although I won't be home until next Thursday to try it.

Just make sure to format and start over from scratch with all those undervoltage errors. There is a tendency for the MicroSD to get corrupted when there are undervoltage issues and the cause of alot of unexplained errors and instability when corrupted while writing. Given your syslog shows undervoltage ever minute or two, I'm pretty sure it's corrupted by now.
said by RonR:

Actually, it's the 3B+ that runs at 1.4 Ghz. The 3B runs at 1.2 Ghz. The 3B+ is also a lot more power hungry than the 3B. The 3B+ requires a very stable 2.5A supply and better cooling for total reliability.

Yes, I mean the 3B+. Haven't really bought any new ones since my stash of 2Bs since I've been able to overclock a few of them to 1.4Ghz.

Can't really keep up with their releases. Just found out there was a 3A+ too. But just got a Microcenter $25 off $25+ coupon in the mail and might get the 3B+ for fun for $5
donatom
join:2018-11-12
Ventura, CA
said by hapollo :
Just make sure to format and start over from scratch with all those undervoltage errors.
Thanks. I would never have guessed that the SD could get corrupted due to under-voltage. Deleting partitions using gparted should be good enough I assume. I will let dd do the formatting when I copy the stretch iso (stretch lite would be adequate for Asterisk, don't you think?) to the SD card.
RonR
join:2003-10-10
Ash Flat, AR
said by donatom:

I will let dd do the formatting when I copy the stretch iso (stretch lite would be adequate for Asterisk, don't you think?) to the SD card.

I highly recommend you use Etcher to write the Stretch image to your SD card so that you get a verify of the operation.

hapollo
join:2007-05-13
WesterOS
to donatom
said by donatom:

will let dd do the formatting when I copy the stretch iso (stretch lite would be adequate for Asterisk, don't you think?) to the SD card.

I usually use SD formatter followed by Win2DiskImager to write the image file to the MicroSD card on a Windows PC

»www.sdcard.org/downloads ··· atter_4/

»sourceforge.net/projects ··· kimager/

Although Win2DiskImager does "format" as it writes the iso but I just format anyway to ensure it's clean before starting.
RonR
join:2003-10-10
Ash Flat, AR
said by hapollo:

I usually use SD formatter followed by Win2DiskImager to write the image file to the MicroSD card on a Windows PC

There's absolutely no reason to format a drive prior to writing an image to it. EVERYTHING will be overwritten when you write the image file to it.

I used to use Win2DiskImager but had numerous problems with it. Etcher has been completely reliable.

hapollo
join:2007-05-13
WesterOS
to RonR

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

said by RonR:

There's absolutely no reason to format a drive prior to writing an image to it. EVERYTHING will be overwritten when you write the image file to it.

You're right. Force of habit. I do that to get rid of the boot partition and ensure I'm starting with a full SD card before starting.

A quick format in SD formatter with Format Size Adjustment takes less than 10 secs
RonR
join:2003-10-10
Ash Flat, AR

1 edit
said by hapollo:

I do that to get rid of the boot partition and ensure I'm starting with a full SD card before starting.

Image files contain the partition table, boot partition, and everything else there is, so nothing you do prior to writing an image file matters. The drive can initially be in any state you can imagine and the result will be the same once you finish writing an image file to it.

hapollo
join:2007-05-13
WesterOS
said by RonR:

Image files contain the partition table, boot partition, and everything else there is, so nothing you do prior to writing an image file matters. The drive can initially be in any state you can imagine and the result will be the same once you finish writing an image file to it.

Yep, I realize that. I just like to make sure I'm working with the full size before I start. There was a time where the SD card wouldn't write the image. Tried a few times and kept getting errors. In the end, I couldn't even format it.

Since then, I figured, if I can't format it, it probably won't write. Better to spend 10 secs than waste 3-5 mins to write the image each time and fail. Granted that only happened twice but that started the habit....
donatom
join:2018-11-12
Ventura, CA
to RonR
Thanks, RonR. Will do. I just downloaded the AppImage of etcher to my Fedora 29 desktop.
donatom
to talkbot
I have installed naf's Asterisk 16 onto a usb stick Linux Mint 19 install and I have also set up my RPi 3B with a new power supply. Unfortunately I can't get either pbx to work. I continue to get error # 503 on the phone (I have a Obi100 ATA which is set up according to Brown's instructions)

I am using naf's client files from Obi100 (instead of the ones I generated).

hapollo
join:2007-05-13
WesterOS
said by donatom:

I continue to get error # 503 on the phone (I have a Obi100 ATA which is set up according to Brown's instructions)

Are you showing registered on both PJSIP at CLI and also on Obi100 SPx System Status?

In troubleshooting, you need to be sure everything is registering first: 1) Asterisk to GV then 2) Obi To Asterisk .before you proceed to the next steps.
donatom
join:2018-11-12
Ventura, CA
said by hapollo :
Are you showing registered on both PJSIP at CLI and also on Obi100 SPx System Status?
"pjsip show registrations" indicates that gvsip1 is unregistered; obi100 does register to asterisk.

hapollo
join:2007-05-13
WesterOS
said by donatom:
said by hapollo :
Are you showing registered on both PJSIP at CLI and also on Obi100 SPx System Status?
"pjsip show registrations" indicates that gvsip1 is unregistered; obi100 does register to asterisk.
You were registered here the other day. What changed?

»Re: How to Install naf Asterisk on Ubuntu for Obi100 and Google Voice

I've have used RonR's FreePBX build so may not be familiar with any difference vs Brown's. Just trying to assist in some way...

All I can say is make sure both show registered and find out why it's not after reviewing Brown's method.
donatom
join:2018-11-12
Ventura, CA
Thanks for your help and suggestions, hapollo. In the asterisk cli read-out it said "register" but when I run "pjsip show registrations", it states that the gvsip1 extension is unregistered. I will look over Brown's procedure again to see if I left anything out -- but since I have installed naf's Asterisk following Brown's instructions 5 - 6 times, I doubt I have neglected anything.
pawpaw
join:2004-05-05
Asheville, NC
to talkbot
Edit: wrong topic, sorry.
QBZappy
join:2012-05-10
to hapollo
said by hapollo:
said by QBZappy:

I also had to reset the OBi202 this week. I used the OBi web portal to get GV setup. For others reading this you might want to back up your config settings before resetting.

Does that mean other than passwords, you can restore the configurations you saved before? i.e. digitmaps, GW, inbound/outbound routes, speedials, SPx settings, proxy etc?

Got alot of custom settings saved and would hate to re-enter all those setting after a reset just to use the Obi Portal for 2 mins just to get GV working again on a single SPx ..
Just looked at my settings. I can confirm that my original speed dials, user defined digit maps, ITSP Profile x, SPx Service settings are all there after OBi web portal GV setup and then restoring configuration locally.
naf
join:2017-12-12

1 recommendation

to OBi1FW
It occurs to me that naf8 never made the obifirmware.com site.
Perhaps OBi1FW See Profile can update to this version?
»Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion
deeiche
join:2016-04-06
yeah, I noticed that too, then went ahead and made a local copy of naf8 with the diff provided in that post. It worked properly and I was able to extract certs from my qty 3 obi110
azrobert
join:2015-02-07
Fountain Hills, AZ

2 edits
to naf
Deleted
utsc
join:2017-12-08
to talkbot
Get my OBi 110 from storage after almost a year. What do I need to know

I am planning to bridge OBi110 (located overseas) to dial out via PSTN local line.
Stewart
join:2005-07-13

1 recommendation

said by utsc:

I am planning to bridge OBi110 (located overseas) to dial out via PSTN local line.

Unless you are planning something very unusual that depends on modified firmware, I suggest that you start a new thread -- most Obihai users won't be reading this one.

Please provide details that may affect your setup:

Country?
ISP?
Is PSTN line copper POTS, cable MTA, fiber ONT, something else?
What PBX or provider will you have on the VoIP side?
How will incoming calls be routed?
Static IP?
Is the location mostly unattended? If so, will you have / do you need a way to reboot modem, router, etc. in case of internet outage? If attended, how will you handle conflicts for local and remote use of the line?
Do you have remote access to other equipment at the site (security cameras, HVAC, etc.)?
OBi1FW
join:2017-12-27
Vienna, VA
to naf
said by naf:

It occurs to me that naf8 never made the obifirmware.com site

Sorry, that I missed this!

All fixed. I will post olisom5 when you like me to. But I can't test it . Someone else could maybe?
Expand your moderator at work
psalter
join:2020-02-10

1 edit
to OBi1FW

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

Hi,
I'm quite late to the party and I wondered if someone had figured out OS and hardware for the OBI110. binwalk wasn't much help in that regard.
naf
join:2017-12-12
Quite late indeed.

There is no OS. Firmware is split into multiple deflated sections of mips-x assembly and data, and there exists a disassembler for the code sections that is mostly correct.

For details, see here: »github.com/naf419/obi-fi ··· re-tools
psalter
join:2020-02-10
said by naf:

Quite late indeed.

The device was sitting in a cupboard and caught my eye recently.
said by naf:

There is no OS. Firmware is split into multiple deflated sections of mips-x assembly and data, and there exists a disassembler for the code sections that is mostly correct.

For details, see here: »github.com/naf419/obi-fi ··· re-tools

There goes my dream of running openwrt on it.
Still, fascinating.

BTW, I couldn't identify a CPU on the board, unless it's the large IC with OBI markings.
u2n
join:2010-07-12
Temperance, MI
to talkbot
Two years ago when this was hot, I spent quite a bit of time trying to get Asterisk running on the router again. That difficulty, along with the risk of Google killing the account I planned to use, led to the project's collapse.

Just stopping by now, didn't notice any updates. Has anyone actually had G pull the plug? And if not, anyone w/ working optware-ng/entware-ng asterisk on router? (Seems like I read pjsip had added compatibility in stock pkg.)

Maybe give this a go with the old 110.
naf
join:2017-12-12

1 edit
said by u2n:

Just stopping by now, didn't notice any updates. Has anyone actually had G pull the plug?

I haven't heard any horror stories. I mean *I* still have an active account, if that tells you anything. Its just not an acceptable subject of conversation for this forum anymore.
Anon8fe6e
@68.58.223.x
I did an upgrade and installed firmware. Everything looks great in the system, however calls are not coming in or out. I did check and the system does register call placed, but still they are not dialing out. Please help
Cam_
join:2013-05-15
to talkbot
naf: I have not really been following this thread because I have assumed, perhaps incorrectly, that there is no way to upgrade an OBi100 or OBi110 to work with Google Voice since they dropped XMPP support. If I am mistaken in this belief, would you be so kind as to PM me the details for how to make them work? I have one of each and I am not certain what the current installed firmware is, but I am pretty certain they were upgraded to the last available Obihai firmware at the time that Obihai dropped support. If it really matters I can connect them to the network and try to find out, the only reason I am hesitant to do that is because I had them on fixed IP addresses and I am pretty sure I reassigned those IP addresses to something else on the network in the many months since they were last used.

I'm really only interested in a method that does not involve taking the device apart, so if that's a requirement then never mind, and thank you in advance either way.
Anon27e6a
@71.183.44.x
to Anon8fe6e
Hey Naf / Community - Anyone also unable to make and receive calls with OBI110?

Calls not going in or out on OBI110 with naf fw and Google Voice.
- No ring back
- call appears in history tab on device but not on Google Voice site!

Here are the tests I did:
- Reset the OBI110 to factory settings then configured Google Voice fresh
- test with the OBI echo server ok (**9 222 222 222)
- retested successfully that the same Google Voice number on OBI200
purduephotog
join:2020-04-18
Rochester, NY
to talkbot
Curiously, is the only real value now in the OBI110 for reverse engineering practice? Seems most everything has been done and a lot of hard blocks in place to keep it from being useful anymore
Celo
join:2002-02-18
San Diego, CA
to naf
I was using my OBi100 with GV. I guess this is no longer possible. What else I can do with it? There is nothing like GV where it combines your email and phone number. Is there?
Mango
Use DMZ and you get a kick in the dick.
Premium Member
join:2008-12-25
www.toao.net

3 recommendations

to purduephotog
It works perfectly well as an FXS or FXO SIP ATA, compatible with service providers such as VoIP.ms, Callcentric, and Anveo.
PDX_Mark
join:2020-08-21
Portland, OR
·VBUZZER
·les.net
to talkbot
Can someone offer guidance?

I got all of the info, but not sure on how to get client ID and Client secret under this new method . I see I need to make a curl or wget request with it but do not find how/where to get client ID and Client Secret. There are Client ID and secret in the ssmple code I have but would assume these are not valid and when I test with them I get

{
"error": "invalid_grant",
"error_description": "Bad Request"
}

Also my gvtoken?code= is much longer than the code=4/xxxxxxxxxxxxxxxx in the sample file.

PM me if necessary please.
PDX_Mark
join:2020-08-21
Portland, OR
·VBUZZER
·les.net

4 edits

Re: ObiHAI Obi100/Obi110 Firmware Mod Discussion

Still not getting past this but I did manage to get the curl request to echo the client ID and Client secret,
curl: no URL specified![1] 3271
[2] 3272
[3] 3273
[4] 3275
bash: »accounts.google.com/o/oa ··· 2/token: No such file or directory
[2] Done client_id=(LongString1HereEchoedAs Entered).apps.googleusercontent.com
[3]- Done client_secret=(LongString2HereEchoedAsEntered)
[4]+ Done redirect_uri=https%3A%2F%2Fwww.obitalk.com%2Fobinet%2Fpg%2Fobhdev%2Fgvtoken

curl: no URL specified!
$
curl: try 'curl --help' or 'curl --manual' for more information

$

(here I hit "enter" then the following echos on screen )

[1]+ Exit 2 curl --request POST --data "code=curl --request POST --data "code=4/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

I am doing somethong wrong I suppose and have no idea what.

I tried the wget and get nothing.
PDX_Mark
Looks like maybe »accounts.google.com/o/oa ··· h2/token is dead? I see a 404 error when loading in browser.
PDX_Mark
anyone??