Tengo un perro de 5 años, es mezcla de fox terrier con "chucho callejero"

Mi problema es que el perro en casa es muy bueno, me hace mucho caso, lo entiende todo y no da ningún problema, pero en la calle tiende a volverse muy desobediente, no hace ningún caso a la orden de venir donde yo estoy, o estarse quieto.
He probado a regañarle cuando no viene, y ha premiarle con caricias cuando lo hace bien, pero no da mucho resultado, este perro es un poco cabezota

Bueno, espero que podais darme algunos consejos algunos que estuvierais en mi situación y hayais logrado "meterlo en cintura" jejeje
Gracias y un saludo.